From 838731cde2ad84cc85b4e2b802077723fd2329f6 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 7 Sep 2010 09:49:30 -0600 Subject: [PATCH] fix gtk theme lookup original commit: e97cf6815b0fa98274fb26baf1f8b592635e2d72 --- collects/mred/private/wx/gtk/procs.rkt | 4 +++- collects/mred/private/wx/gtk/style.rkt | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/collects/mred/private/wx/gtk/procs.rkt b/collects/mred/private/wx/gtk/procs.rkt index 1fe3242d..23a7f8a0 100644 --- a/collects/mred/private/wx/gtk/procs.rkt +++ b/collects/mred/private/wx/gtk/procs.rkt @@ -135,4 +135,6 @@ (define (get-highlight-text-color) (let-values ([(r g b) (get-selected-text-color)]) - (make-object color% r g b))) + (if (and (zero? r) (zero? g) (zero? b)) + #f + (make-object color% r g b)))) diff --git a/collects/mred/private/wx/gtk/style.rkt b/collects/mred/private/wx/gtk/style.rkt index 6d8550f5..f5d41e6b 100644 --- a/collects/mred/private/wx/gtk/style.rkt +++ b/collects/mred/private/wx/gtk/style.rkt @@ -13,8 +13,17 @@ [green _uint16] [blue _uint16])) +(define-cstruct _GTypeInstance + ([class _pointer])) + +(define-cstruct _GObject + ([g_type_instance _GTypeInstance] + [ref_count _uint] + [qdata _pointer])) + (define-cstruct _GtkStyle - ([fg1 _GdkColor] + ([obj _GObject] + [fg1 _GdkColor] [fg2 _GdkColor] [fg3 _GdkColor] [fg4 _GdkColor] @@ -61,11 +70,12 @@ )) (define-gtk gtk_widget_get_style (_fun _GtkWidget -> _GtkStyle-pointer)) +(define-gtk gtk_rc_get_style (_fun _GtkWidget -> _GtkStyle-pointer)) (define-gtk gtk_text_view_new (_fun -> _GtkWidget)) (define the-text-style (let ([w (gtk_text_view_new)]) - (let ([style (gtk_widget_get_style w)]) + (let ([style (gtk_rc_get_style w)]) (g_object_ref style) (begin0 style @@ -73,7 +83,7 @@ (g_object_unref w))))) (define (extract-color-values c) - (define (s v) (bitwise-and #xFF (arithmetic-shift v -8))) + (define (s v) (arithmetic-shift v -8)) (values (s (GdkColor-red c)) (s (GdkColor-green c)) (s (GdkColor-blue c))))