Remove more gdk_pointer_grab() where they are not strictly needed

and replace them by gtk_grab_add()/remove().
This commit is contained in:
Michael Natterer 2011-12-10 21:51:05 +01:00
parent 022af2610e
commit 180cb656ae
4 changed files with 29 additions and 38 deletions

View File

@ -351,9 +351,8 @@ gimp_dash_editor_button_press (GtkWidget *widget,
if (bevent->button == 1 && bevent->type == GDK_BUTTON_PRESS)
{
gdk_pointer_grab (gtk_widget_get_window (widget), FALSE,
GDK_BUTTON_RELEASE_MASK | GDK_BUTTON1_MOTION_MASK,
NULL, NULL, bevent->time);
gtk_grab_add (widget);
index = dash_x_to_index (editor, bevent->x);
editor->edit_mode = ! editor->segments [index];
@ -375,8 +374,7 @@ gimp_dash_editor_button_release (GtkWidget *widget,
if (bevent->button == 1)
{
gdk_display_pointer_ungrab (gtk_widget_get_display (GTK_WIDGET (editor)),
bevent->time);
gtk_grab_remove (widget);
update_options_from_segments (editor);
}

View File

@ -528,9 +528,7 @@ gimp_histogram_view_button_press (GtkWidget *widget,
GtkAllocation allocation;
gint width;
gdk_pointer_grab (gtk_widget_get_window (widget), FALSE,
GDK_BUTTON_RELEASE_MASK | GDK_BUTTON1_MOTION_MASK,
NULL, NULL, bevent->time);
gtk_grab_add (widget);
gtk_widget_get_allocation (widget, &allocation);
@ -556,8 +554,7 @@ gimp_histogram_view_button_release (GtkWidget *widget,
{
gint start, end;
gdk_display_pointer_ungrab (gtk_widget_get_display (GTK_WIDGET (view)),
bevent->time);
gtk_grab_remove (widget);
start = view->start;
end = view->end;

View File

@ -671,11 +671,7 @@ gimp_color_select_xy_events (GtkWidget *widget,
x = bevent->x;
y = bevent->y;
gdk_pointer_grab (gtk_widget_get_window (select->xy_color), FALSE,
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_MOTION_MASK |
GDK_BUTTON_RELEASE_MASK,
NULL, NULL, bevent->time);
gtk_grab_add (widget);
select->drag_mode = DRAG_XY;
}
break;
@ -690,8 +686,7 @@ gimp_color_select_xy_events (GtkWidget *widget,
x = bevent->x;
y = bevent->y;
gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
bevent->time);
gtk_grab_remove (widget);
select->drag_mode = DRAG_NONE;
}
break;
@ -793,11 +788,7 @@ gimp_color_select_z_events (GtkWidget *widget,
z = bevent->y;
gdk_pointer_grab (gtk_widget_get_window (select->z_color), FALSE,
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_MOTION_MASK |
GDK_BUTTON_RELEASE_MASK,
NULL, NULL, bevent->time);
gtk_grab_add (widget);
select->drag_mode = DRAG_Z;
}
break;
@ -811,8 +802,7 @@ gimp_color_select_z_events (GtkWidget *widget,
z = bevent->y;
gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
bevent->time);
gtk_grab_remove (widget);
select->drag_mode = DRAG_NONE;
}
break;

View File

@ -100,7 +100,10 @@ gimp_offset_area_init (GimpOffsetArea *area)
area->display_ratio_x = 1.0;
area->display_ratio_y = 1.0;
gtk_widget_add_events (GTK_WIDGET (area), GDK_BUTTON_PRESS_MASK);
gtk_widget_add_events (GTK_WIDGET (area),
GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_BUTTON1_MOTION_MASK);
}
/**
@ -353,15 +356,15 @@ gimp_offset_area_event (GtkWidget *widget,
switch (event->type)
{
case GDK_BUTTON_PRESS:
gdk_pointer_grab (gtk_widget_get_window (widget), FALSE,
(GDK_BUTTON1_MOTION_MASK |
GDK_BUTTON_RELEASE_MASK),
NULL, NULL, event->button.time);
if (event->button.button == 1)
{
gtk_grab_add (widget);
orig_offset_x = area->offset_x;
orig_offset_y = area->offset_y;
start_x = event->button.x;
start_y = event->button.y;
orig_offset_x = area->offset_x;
orig_offset_y = area->offset_y;
start_x = event->button.x;
start_y = event->button.y;
}
break;
case GDK_MOTION_NOTIFY:
@ -381,16 +384,19 @@ gimp_offset_area_event (GtkWidget *widget,
break;
case GDK_BUTTON_RELEASE:
gdk_display_pointer_ungrab (gtk_widget_get_display (widget),
event->button.time);
start_x = start_y = 0;
if (event->button.button == 1)
{
gtk_grab_remove (widget);
start_x = start_y = 0;
}
break;
default:
break;
return FALSE;
}
return FALSE;
return TRUE;
}
static gboolean