diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-10-07 19:42:49 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-10-07 19:42:49 +0000 |
commit | 253458ec525ac1d1ed45ce47a79365df7905e01f (patch) | |
tree | 3712ec56f7242c2d56b4c8dfbdb03e9aff4ff8df /gtk | |
parent | 55704fc7c1b5429bf8cc7e8100893b01898a9fe8 (diff) | |
download | gtk+-253458ec525ac1d1ed45ce47a79365df7905e01f.tar.gz |
- Replace GdkPointerHooks with a multihead-safe GdkDisplayPointerHooks,
Mon Oct 7 15:10:00 2002 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdisplay.[ch] gdk/gdkinternals.h
gdk/gdkwindow.[ch] gdk/linux-fb/gdkwindow-fb.c
gdk/win32/gdkwindow-win32.c gdk/x11/gdkwindow-x11.c:
- Replace GdkPointerHooks with a multihead-safe
GdkDisplayPointerHooks, leave GdkPointerHooks
around for singlehead.
- Add gdk_display_get_pointer() to get the pointer
location with the screen it is on.
* gdk/gdk.def gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch]:
Change gdk_screen_get_window_at_pointer() to
gdk_display_get_window_at_pointer().
* gtk/gtktreeview.c demos/gtk-demo/changedisplay.c
tests/testgtk.c: Use gdk_display_get_window_at_pointer(),
not gdk_screen_get_window_at_pointer().
* gtk/gtkcolorsel.c: Fix grabbing color to be multihead
safe.
* gtk/gtkwidget.c: Allow gtk_widget_push_colormap (NULL).
since it is useful for writing code that doesn't
know the dcurrent state but needs a clean colormap.
* gtk/gtkrc.c: When loading the settings for a particular
screen, only reset toplevels on that screen.
* gtk/gtkiconfactory.h: Fix #ifdef GTK_MULTIHEAD_SAFE
that should have been #ifndef GTK_MULTIHEAD_SAFE.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkcolorsel.c | 12 | ||||
-rw-r--r-- | gtk/gtkiconfactory.h | 2 | ||||
-rw-r--r-- | gtk/gtkrc.c | 7 | ||||
-rw-r--r-- | gtk/gtktreeview.c | 6 | ||||
-rw-r--r-- | gtk/gtkwidget.c | 2 |
5 files changed, 17 insertions, 12 deletions
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c index 069fa8c576..dc43894d7a 100644 --- a/gtk/gtkcolorsel.c +++ b/gtk/gtkcolorsel.c @@ -1140,7 +1140,7 @@ make_picker_cursor (GdkScreen *screen) } static void -grab_color_at_mouse (GtkWidget *invisible, +grab_color_at_mouse (GdkScreen *screen, gint x_root, gint y_root, gpointer data) @@ -1150,8 +1150,8 @@ grab_color_at_mouse (GtkWidget *invisible, GtkColorSelection *colorsel = data; ColorSelectionPrivate *priv; GdkColor color; - GdkColormap *colormap = gdk_screen_get_system_colormap (gtk_widget_get_screen (invisible)); - GdkWindow *root_window = gdk_screen_get_root_window (gtk_widget_get_screen (invisible)); + GdkColormap *colormap = gdk_screen_get_system_colormap (screen); + GdkWindow *root_window = gdk_screen_get_root_window (screen); priv = colorsel->private_data; @@ -1196,7 +1196,8 @@ mouse_motion (GtkWidget *invisible, GdkEventMotion *event, gpointer data) { - grab_color_at_mouse (invisible, event->x_root, event->y_root, data); + grab_color_at_mouse (gdk_event_get_screen ((GdkEvent *)event), + event->x_root, event->y_root, data); } static gboolean @@ -1211,7 +1212,8 @@ mouse_release (GtkWidget *invisible, if (event->button != 1) return FALSE; - grab_color_at_mouse (invisible, event->x_root, event->y_root, data); + grab_color_at_mouse (gdk_event_get_screen ((GdkEvent *)event), + event->x_root, event->y_root, data); shutdown_eyedropper (GTK_WIDGET (data)); diff --git a/gtk/gtkiconfactory.h b/gtk/gtkiconfactory.h index e6fb5435ec..dda09002c3 100644 --- a/gtk/gtkiconfactory.h +++ b/gtk/gtkiconfactory.h @@ -88,7 +88,7 @@ GtkIconSet* gtk_icon_factory_lookup_default (const gchar *stock_id); * size from the rendered pixbuf, not from here. */ -#ifdef GTK_MULTIHEAD_SAFE +#ifndef GTK_MULTIHEAD_SAFE gboolean gtk_icon_size_lookup (GtkIconSize size, gint *width, gint *height); diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index ad86a5666a..1379de7387 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -1280,8 +1280,11 @@ gtk_rc_reset_widgets (GtkSettings *settings) for (list = toplevels; list; list = list->next) { - gtk_widget_reset_rc_styles (list->data); - gtk_widget_unref (list->data); + if (gtk_widget_get_screen (list->data) == settings->screen) + { + gtk_widget_reset_rc_styles (list->data); + gtk_widget_unref (list->data); + } } g_list_free (toplevels); } diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index b67a3380d6..f977f2fcab 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -9068,7 +9068,7 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view, gboolean collapse; gint x, y; GList *list; - GdkScreen *screen; + GdkDisplay *display; if (node->children == NULL) return FALSE; @@ -9214,8 +9214,8 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view, /* now that we've collapsed all rows, we want to try to set the prelight * again. To do this, we fake a motion event and send it to ourselves. */ - screen = gdk_drawable_get_screen (tree_view->priv->bin_window); - if (gdk_screen_get_window_at_pointer (screen, &x, &y) == tree_view->priv->bin_window) + display = gdk_drawable_get_display (tree_view->priv->bin_window); + if (gdk_display_get_window_at_pointer (display, &x, &y) == tree_view->priv->bin_window) { GdkEventMotion event; event.window = tree_view->priv->bin_window; diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index c6b40d70cf..418ee4d326 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5554,7 +5554,7 @@ gtk_widget_pop_composite_child (void) void gtk_widget_push_colormap (GdkColormap *cmap) { - g_return_if_fail (GDK_IS_COLORMAP (cmap)); + g_return_if_fail (!cmap || GDK_IS_COLORMAP (cmap)); colormap_stack = g_slist_prepend (colormap_stack, cmap); } |