summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--callbacks.c1
-rw-r--r--callbacks.h5
-rw-r--r--deadbeef.glade2
-rw-r--r--gtkplaylist.c24
-rw-r--r--interface.c4
5 files changed, 36 insertions, 0 deletions
diff --git a/callbacks.c b/callbacks.c
index d87a2896..b5ef3ba3 100644
--- a/callbacks.c
+++ b/callbacks.c
@@ -525,3 +525,4 @@ on_voice5_clicked (GtkButton *button,
}
+
diff --git a/callbacks.h b/callbacks.h
index 1efce62e..6f7e6007 100644
--- a/callbacks.h
+++ b/callbacks.h
@@ -218,3 +218,8 @@ on_header_configure_event (GtkWidget *widget,
void
on_header_realize (GtkWidget *widget,
gpointer user_data);
+
+gboolean
+on_header_motion_notify_event (GtkWidget *widget,
+ GdkEventMotion *event,
+ gpointer user_data);
diff --git a/deadbeef.glade b/deadbeef.glade
index b04f2a4c..455f4dff 100644
--- a/deadbeef.glade
+++ b/deadbeef.glade
@@ -613,9 +613,11 @@
<widget class="GtkDrawingArea" id="header">
<property name="height_request">24</property>
<property name="visible">True</property>
+ <property name="events">GDK_POINTER_MOTION_MASK</property>
<signal name="expose_event" handler="on_header_expose_event" last_modification_time="Thu, 06 Aug 2009 14:54:29 GMT"/>
<signal name="configure_event" handler="on_header_configure_event" last_modification_time="Thu, 06 Aug 2009 14:54:33 GMT"/>
<signal name="realize" handler="on_header_realize" last_modification_time="Thu, 06 Aug 2009 14:54:41 GMT"/>
+ <signal name="motion_notify_event" handler="on_header_motion_notify_event" last_modification_time="Thu, 06 Aug 2009 16:33:54 GMT"/>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/gtkplaylist.c b/gtkplaylist.c
index 8dbd44bc..466d64ca 100644
--- a/gtkplaylist.c
+++ b/gtkplaylist.c
@@ -1136,9 +1136,33 @@ on_header_configure_event (GtkWidget *widget,
}
+GdkCursor* cursor_sz;
+
void
on_header_realize (GtkWidget *widget,
gpointer user_data)
{
+ // create cursor for sizing headers
+ cursor_sz = gdk_cursor_new (GDK_SB_H_DOUBLE_ARROW);
+}
+
+gboolean
+on_header_motion_notify_event (GtkWidget *widget,
+ GdkEventMotion *event,
+ gpointer user_data)
+{
+ int x = 0;
+ for (int i = 0; i < ncolumns; i++) {
+ int w = colwidths[i];
+ if (event->x >= x + w && event->x <= x+w+2) {
+ gdk_window_set_cursor (widget->window, cursor_sz);
+ break;
+ }
+ else {
+ gdk_window_set_cursor (widget->window, NULL);
+ }
+ x += w + 2;
+ }
+ return FALSE;
}
diff --git a/interface.c b/interface.c
index bd2ea251..cffd0c30 100644
--- a/interface.c
+++ b/interface.c
@@ -331,6 +331,7 @@ create_mainwin (void)
gtk_widget_show (header);
gtk_box_pack_start (GTK_BOX (vbox3), header, FALSE, TRUE, 0);
gtk_widget_set_size_request (header, -1, 24);
+ gtk_widget_set_events (header, GDK_POINTER_MOTION_MASK);
playlist = gtk_drawing_area_new ();
gtk_widget_show (playlist);
@@ -429,6 +430,9 @@ create_mainwin (void)
g_signal_connect ((gpointer) header, "realize",
G_CALLBACK (on_header_realize),
NULL);
+ g_signal_connect ((gpointer) header, "motion_notify_event",
+ G_CALLBACK (on_header_motion_notify_event),
+ NULL);
g_signal_connect ((gpointer) playlist, "configure_event",
G_CALLBACK (on_playlist_configure_event),
NULL);