[gimp] app: cancel the tool progress if the progress title was clicked
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: cancel the tool progress if the progress title was clicked
- Date: Mon, 30 Jun 2014 01:45:17 +0000 (UTC)
commit 6fb9d1a3b0fd58317fcbb5b58cef9366ae39efc5
Author: Michael Natterer <mitch gimp org>
Date: Mon Jun 30 03:41:46 2014 +0200
app: cancel the tool progress if the progress title was clicked
app/tools/gimptool-progress.c | 38 ++++++++++++++++++++++++++++++++++++--
1 files changed, 36 insertions(+), 2 deletions(-)
---
diff --git a/app/tools/gimptool-progress.c b/app/tools/gimptool-progress.c
index 03d2d53..688d4c4 100644
--- a/app/tools/gimptool-progress.c
+++ b/app/tools/gimptool-progress.c
@@ -80,7 +80,38 @@ gimp_tool_progress_iface_init (GimpProgressInterface *iface)
/* private functions */
static gboolean
-gimp_tool_progress_key_event (GtkWidget *widget,
+gimp_tool_progress_button_press (GtkWidget *widget,
+ const GdkEventButton *bevent,
+ GimpTool *tool)
+{
+ if (bevent->type == GDK_BUTTON_PRESS &&
+ bevent->button == 1)
+ {
+ GtkWidget *event_widget;
+ GimpDisplayShell *shell;
+
+ event_widget = gtk_get_event_widget ((GdkEvent *) bevent);
+ shell = gimp_display_get_shell (tool->progress_display);
+
+ if (shell->canvas == event_widget)
+ {
+ gint x, y;
+
+ gimp_display_shell_unzoom_xy (shell, bevent->x, bevent->y,
+ &x, &y, FALSE);
+
+ if (gimp_canvas_item_hit (tool->progress, x, y))
+ {
+ gimp_progress_cancel (GIMP_PROGRESS (tool));
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+static gboolean
+gimp_tool_progress_key_press (GtkWidget *widget,
const GdkEventKey *kevent,
GimpTool *tool)
{
@@ -129,8 +160,11 @@ gimp_tool_progress_start (GimpProgress *progress,
gtk_widget_show (tool->progress_grab_widget);
gtk_grab_add (tool->progress_grab_widget);
+ g_signal_connect (tool->progress_grab_widget, "button-press-event",
+ G_CALLBACK (gimp_tool_progress_button_press),
+ tool);
g_signal_connect (tool->progress_grab_widget, "key-press-event",
- G_CALLBACK (gimp_tool_progress_key_event),
+ G_CALLBACK (gimp_tool_progress_key_press),
tool);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]