summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-10-07 19:42:49 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-10-07 19:42:49 +0000
commit253458ec525ac1d1ed45ce47a79365df7905e01f (patch)
tree3712ec56f7242c2d56b4c8dfbdb03e9aff4ff8df /gtk
parent55704fc7c1b5429bf8cc7e8100893b01898a9fe8 (diff)
downloadgtk+-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.c12
-rw-r--r--gtk/gtkiconfactory.h2
-rw-r--r--gtk/gtkrc.c7
-rw-r--r--gtk/gtktreeview.c6
-rw-r--r--gtk/gtkwidget.c2
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);
}