[Goodies-commits] r3462 - xfce4-notes-plugin/trunk/panel-plugin
Mike Massonnet
mmassonnet at xfce.org
Sat Oct 27 04:01:19 CEST 2007
Author: mmassonnet
Date: 2007-10-27 02:01:19 +0000 (Sat, 27 Oct 2007)
New Revision: 3462
Modified:
xfce4-notes-plugin/trunk/panel-plugin/notes.c
xfce4-notes-plugin/trunk/panel-plugin/notes.h
Log:
* panel-plugin/notes.c(notes_window_start_move,
notes_window_timeout_start_move,
notes_window_timeout_start_move_destroy,
notes_window_new_with_label): Delay the start_move window a bit
(1OOms) with a timeout, and kill it on-release.
Modified: xfce4-notes-plugin/trunk/panel-plugin/notes.c
===================================================================
--- xfce4-notes-plugin/trunk/panel-plugin/notes.c 2007-10-26 19:11:54 UTC (rev 3461)
+++ xfce4-notes-plugin/trunk/panel-plugin/notes.c 2007-10-27 02:01:19 UTC (rev 3462)
@@ -67,6 +67,13 @@
GdkEventWindowState *event);
static gboolean notes_window_start_move (NotesWindow *notes_window,
GdkEventButton *event);
+static gboolean notes_window_start_move (NotesWindow *notes_window,
+ GdkEventButton *event);
+
+static gboolean notes_window_timeout_start_move (NotesWindow *notes_window);
+
+static gboolean notes_window_timeout_start_move_destroy (NotesWindow *notes_window);
+
static gboolean notes_window_scroll_event (NotesWindow *notes_window,
GdkEventScroll *event);
static void notes_window_shade (NotesWindow *notes_window);
@@ -336,6 +343,10 @@
G_CALLBACK (notes_window_start_move),
notes_window);
g_signal_connect_swapped (notes_window->eb_move,
+ "button-release-event",
+ G_CALLBACK (notes_window_timeout_start_move_destroy),
+ notes_window);
+ g_signal_connect_swapped (notes_window->eb_move,
"scroll-event",
G_CALLBACK (notes_window_scroll_event),
notes_window);
@@ -1007,11 +1018,8 @@
if (event->button == 1)
{
gdk_window_show (notes_window->window->window);
- gtk_window_begin_move_drag (GTK_WINDOW (notes_window->window),
- event->button,
- event->x_root,
- event->y_root,
- event->time);
+ notes_window->timeout_start_move =
+ g_timeout_add (100, (GSourceFunc)notes_window_timeout_start_move, notes_window);
}
/* Send to background */
else if (event->button == 2)
@@ -1022,6 +1030,33 @@
}
static gboolean
+notes_window_timeout_start_move (NotesWindow *notes_window)
+{
+ gint x, y, xfoo, ybar;
+
+ gtk_window_get_position (GTK_WINDOW (notes_window->window), &x, &y);
+ gtk_widget_get_pointer (notes_window->window, &xfoo, &ybar);
+ x += xfoo;
+ y += ybar;
+
+ gtk_window_begin_move_drag (GTK_WINDOW (notes_window->window),
+ 1, x, y, gtk_get_current_event_time ());
+ notes_window_timeout_start_move_destroy (notes_window);
+
+ return FALSE;
+}
+
+static gboolean
+notes_window_timeout_start_move_destroy (NotesWindow *notes_window)
+{
+ TRACE ("Timeout destroyed");
+ if (notes_window->timeout_start_move > 0)
+ g_source_remove (notes_window->timeout_start_move);
+ notes_window->timeout_start_move = 0;
+ return FALSE;
+}
+
+static gboolean
notes_window_scroll_event (NotesWindow *notes_window,
GdkEventScroll *event)
{
Modified: xfce4-notes-plugin/trunk/panel-plugin/notes.h
===================================================================
--- xfce4-notes-plugin/trunk/panel-plugin/notes.h 2007-10-26 19:11:54 UTC (rev 3461)
+++ xfce4-notes-plugin/trunk/panel-plugin/notes.h 2007-10-27 02:01:19 UTC (rev 3462)
@@ -57,6 +57,7 @@
GSList *notes;
gchar *name;
+ guint timeout_start_move;
gint x, y, w, h;
ShowOnStartup show_on_startup;
gboolean show_statusbar;
More information about the Goodies-commits
mailing list