forked from AuroraMiddleware/gtk
gtk: Stop setting GDK_EXPOSURE_MASK on random widgets
These days exposure happens only on the native windows (generally the toplevel window) and is propagated down recursively. The expose event is only useful for backwards compat, and in fact, for double buffered widgets we totally ignore the event (and non-double buffering breaks on wayland). So, by not setting the mask we avoid emitting these events and then later ignoring them. We still keep it on eventbox, fixed and layout as these are used in weird ways that want backwards compat.
This commit is contained in:
parent
eafedfbaf8
commit
d5f1754981
@ -1659,7 +1659,6 @@ palette_new (GtkColorSelection *colorsel)
|
||||
g_object_set_data (G_OBJECT (retval), I_("color_set"), GINT_TO_POINTER (0));
|
||||
gtk_widget_set_events (retval, GDK_BUTTON_PRESS_MASK
|
||||
| GDK_BUTTON_RELEASE_MASK
|
||||
| GDK_EXPOSURE_MASK
|
||||
| GDK_ENTER_NOTIFY_MASK
|
||||
| GDK_LEAVE_NOTIFY_MASK);
|
||||
|
||||
|
@ -494,8 +494,7 @@ gtk_handle_box_realize (GtkWidget *widget)
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = (gtk_widget_get_events (widget)
|
||||
| GDK_EXPOSURE_MASK);
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
@ -509,7 +508,6 @@ gtk_handle_box_realize (GtkWidget *widget)
|
||||
attributes.height = allocation.height;
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.event_mask = (gtk_widget_get_events (widget)
|
||||
| GDK_EXPOSURE_MASK
|
||||
| GDK_BUTTON1_MOTION_MASK
|
||||
| GDK_POINTER_MOTION_HINT_MASK
|
||||
| GDK_BUTTON_PRESS_MASK
|
||||
|
@ -440,7 +440,7 @@ gtk_misc_realize (GtkWidget *widget)
|
||||
attributes.height = allocation.height;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
window = gdk_window_new (gtk_widget_get_parent_window (widget), &attributes, attributes_mask);
|
||||
|
@ -1638,7 +1638,6 @@ gtk_calendar_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_ONLY;
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.event_mask = (gtk_widget_get_events (widget)
|
||||
| GDK_EXPOSURE_MASK
|
||||
| GDK_SCROLL_MASK
|
||||
| GDK_BUTTON_PRESS_MASK
|
||||
| GDK_BUTTON_RELEASE_MASK
|
||||
|
@ -3086,7 +3086,6 @@ gtk_flow_box_realize (GtkWidget *widget)
|
||||
| GDK_ENTER_NOTIFY_MASK
|
||||
| GDK_LEAVE_NOTIFY_MASK
|
||||
| GDK_POINTER_MOTION_MASK
|
||||
| GDK_EXPOSURE_MASK
|
||||
| GDK_KEY_PRESS_MASK
|
||||
| GDK_BUTTON_PRESS_MASK
|
||||
| GDK_BUTTON_RELEASE_MASK;
|
||||
|
@ -284,7 +284,7 @@ gtk_gl_area_realize (GtkWidget *widget)
|
||||
attributes.width = allocation.width;
|
||||
attributes.height = allocation.height;
|
||||
attributes.wclass = GDK_INPUT_ONLY;
|
||||
attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y;
|
||||
|
||||
|
@ -1300,8 +1300,7 @@ gtk_icon_view_realize (GtkWidget *widget)
|
||||
attributes.y = 0;
|
||||
attributes.width = MAX (icon_view->priv->width, allocation.width);
|
||||
attributes.height = MAX (icon_view->priv->height, allocation.height);
|
||||
attributes.event_mask = (GDK_EXPOSURE_MASK |
|
||||
GDK_SCROLL_MASK |
|
||||
attributes.event_mask = (GDK_SCROLL_MASK |
|
||||
GDK_SMOOTH_SCROLL_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
|
@ -2094,7 +2094,7 @@ gtk_list_box_realize (GtkWidget *widget)
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.event_mask = gtk_widget_get_events (widget) |
|
||||
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK |
|
||||
GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK;
|
||||
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
|
||||
window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
|
@ -298,8 +298,7 @@ _gtk_magnifier_init (GtkMagnifier *magnifier)
|
||||
priv = _gtk_magnifier_get_instance_private (magnifier);
|
||||
|
||||
gtk_widget_set_events (widget,
|
||||
gtk_widget_get_events (widget) |
|
||||
GDK_EXPOSURE_MASK);
|
||||
gtk_widget_get_events (widget));
|
||||
|
||||
gtk_widget_set_has_window (widget, FALSE);
|
||||
priv->magnification = 1;
|
||||
|
@ -2582,7 +2582,7 @@ gtk_menu_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.event_mask |= (GDK_EXPOSURE_MASK | GDK_KEY_PRESS_MASK |
|
||||
attributes.event_mask |= (GDK_KEY_PRESS_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK );
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
@ -602,8 +602,7 @@ gtk_menu_shell_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.event_mask |= (GDK_EXPOSURE_MASK |
|
||||
GDK_BUTTON_PRESS_MASK |
|
||||
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_KEY_PRESS_MASK |
|
||||
|
@ -3116,7 +3116,7 @@ show_drag_window (GtkNotebook *notebook,
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
priv->drag_window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
|
@ -151,7 +151,7 @@ gtk_overlay_create_child_window (GtkOverlay *overlay,
|
||||
attributes.y = allocation.y;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
|
||||
window = gdk_window_new (gtk_widget_get_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
|
@ -1526,7 +1526,7 @@ gtk_paned_create_child_window (GtkPaned *paned,
|
||||
|
||||
attributes.window_type = GDK_WINDOW_CHILD;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
if (child)
|
||||
{
|
||||
|
@ -345,7 +345,6 @@ gtk_popover_realize (GtkWidget *widget)
|
||||
GDK_BUTTON_MOTION_MASK |
|
||||
GDK_BUTTON_PRESS_MASK |
|
||||
GDK_BUTTON_RELEASE_MASK |
|
||||
GDK_EXPOSURE_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK;
|
||||
|
||||
|
@ -367,7 +367,7 @@ gtk_revealer_real_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask =
|
||||
gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
gtk_widget_get_events (widget);
|
||||
attributes_mask = (GDK_WA_X | GDK_WA_Y) | GDK_WA_VISUAL;
|
||||
|
||||
priv->view_window =
|
||||
|
@ -3936,7 +3936,7 @@ create_indicator_window (GtkScrolledWindow *scrolled_window,
|
||||
attributes.y = allocation.y;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
|
||||
window = gdk_window_new (gtk_widget_get_window (widget),
|
||||
&attributes, attributes_mask);
|
||||
@ -4226,7 +4226,7 @@ gtk_scrolled_window_realize (GtkWidget *widget)
|
||||
attributes.y = allocation.y;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
attributes.event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK |
|
||||
attributes.event_mask = gtk_widget_get_events (widget) |
|
||||
GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
|
||||
|
||||
window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
||||
|
@ -1093,7 +1093,7 @@ gtk_spin_button_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_ONLY;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = gtk_widget_get_events (widget);
|
||||
attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK
|
||||
attributes.event_mask |= GDK_BUTTON_PRESS_MASK
|
||||
| GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK
|
||||
| GDK_POINTER_MOTION_MASK;
|
||||
|
||||
|
@ -343,7 +343,7 @@ gtk_stack_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask =
|
||||
gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
gtk_widget_get_events (widget);
|
||||
attributes_mask = (GDK_WA_X | GDK_WA_Y) | GDK_WA_VISUAL;
|
||||
|
||||
priv->view_window =
|
||||
|
@ -4602,7 +4602,7 @@ gtk_text_view_realize (GtkWidget *widget)
|
||||
attributes.height = allocation.height;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK;
|
||||
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
@ -9814,7 +9814,6 @@ text_window_realize (GtkTextWindow *win,
|
||||
attributes.width = win->allocation.width;
|
||||
attributes.height = win->allocation.height;
|
||||
attributes.event_mask = gtk_widget_get_events (win->widget)
|
||||
| GDK_EXPOSURE_MASK
|
||||
| GDK_SCROLL_MASK
|
||||
| GDK_SMOOTH_SCROLL_MASK
|
||||
| GDK_KEY_PRESS_MASK
|
||||
|
@ -1229,7 +1229,7 @@ gtk_tool_item_group_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = gtk_widget_get_events (widget)
|
||||
| GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK
|
||||
| GDK_VISIBILITY_NOTIFY_MASK
|
||||
| GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
|
||||
| GDK_BUTTON_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
@ -728,7 +728,7 @@ gtk_tool_palette_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
attributes.event_mask = gtk_widget_get_events (widget)
|
||||
| GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK
|
||||
| GDK_VISIBILITY_NOTIFY_MASK
|
||||
| GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
|
||||
| GDK_BUTTON_MOTION_MASK
|
||||
| GDK_SCROLL_MASK | GDK_SMOOTH_SCROLL_MASK
|
||||
|
@ -2412,8 +2412,7 @@ gtk_tree_view_realize (GtkWidget *widget)
|
||||
attributes.y = gtk_tree_view_get_effective_header_height (tree_view);
|
||||
attributes.width = MAX (tree_view->priv->width, allocation.width);
|
||||
attributes.height = allocation.height;
|
||||
attributes.event_mask = (GDK_EXPOSURE_MASK |
|
||||
GDK_SCROLL_MASK |
|
||||
attributes.event_mask = (GDK_SCROLL_MASK |
|
||||
GDK_SMOOTH_SCROLL_MASK |
|
||||
GDK_POINTER_MOTION_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
@ -2435,8 +2434,7 @@ gtk_tree_view_realize (GtkWidget *widget)
|
||||
attributes.y = 0;
|
||||
attributes.width = MAX (tree_view->priv->width, allocation.width);
|
||||
attributes.height = tree_view->priv->header_height;
|
||||
attributes.event_mask = (GDK_EXPOSURE_MASK |
|
||||
GDK_SCROLL_MASK |
|
||||
attributes.event_mask = (GDK_SCROLL_MASK |
|
||||
GDK_ENTER_NOTIFY_MASK |
|
||||
GDK_LEAVE_NOTIFY_MASK |
|
||||
GDK_BUTTON_PRESS_MASK |
|
||||
@ -3951,7 +3949,7 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
|
||||
width = attributes.width = drag_allocation.width;
|
||||
height = attributes.height = drag_allocation.height;
|
||||
attributes.visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
tree_view->priv->drag_highlight_window = gdk_window_new (tree_view->priv->header_window, &attributes, attributes_mask);
|
||||
gtk_widget_register_window (GTK_WIDGET (tree_view), tree_view->priv->drag_highlight_window);
|
||||
@ -3997,7 +3995,7 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
|
||||
attributes.window_type = GDK_WINDOW_TEMP;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
attributes.x = x;
|
||||
attributes.y = y;
|
||||
@ -4078,7 +4076,7 @@ gtk_tree_view_motion_draw_column_motion_arrow (GtkTreeView *tree_view)
|
||||
attributes.window_type = GDK_WINDOW_TEMP;
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
attributes.x = x;
|
||||
attributes.y = y;
|
||||
@ -10041,7 +10039,7 @@ _gtk_tree_view_column_start_drag (GtkTreeView *tree_view,
|
||||
attributes.width = button_allocation.width;
|
||||
attributes.height = button_allocation.height;
|
||||
attributes.visual = gtk_widget_get_visual (GTK_WIDGET (tree_view));
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK | GDK_POINTER_MOTION_MASK;
|
||||
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
|
||||
|
||||
tree_view->priv->drag_window = gdk_window_new (tree_view->priv->header_window,
|
||||
|
@ -747,7 +747,7 @@ gtk_viewport_realize (GtkWidget *widget)
|
||||
attributes.wclass = GDK_INPUT_OUTPUT;
|
||||
attributes.visual = gtk_widget_get_visual (widget);
|
||||
|
||||
event_mask = gtk_widget_get_events (widget) | GDK_EXPOSURE_MASK;
|
||||
event_mask = gtk_widget_get_events (widget);
|
||||
|
||||
attributes.event_mask = event_mask | GDK_SCROLL_MASK | GDK_TOUCH_MASK | GDK_SMOOTH_SCROLL_MASK;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user