From: Udi F. <udi...@us...> - 2008-06-21 12:49:53
|
Update of /cvsroot/ufraw/ufraw In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv7305 Modified Files: ufraw_preview.c Log Message: Hide zoom key bindings from GtkImageView. Hide left, right scroll events from GtkImageView. Index: ufraw_preview.c =================================================================== RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v retrieving revision 1.210 retrieving revision 1.211 diff -u -d -r1.210 -r1.211 --- ufraw_preview.c 12 Jun 2008 21:49:51 -0000 1.210 +++ ufraw_preview.c 20 Jun 2008 20:17:35 -0000 1.211 @@ -25,6 +25,7 @@ #include <math.h> #include <errno.h> #include "uf_gtk.h" +#include <gdk/gdkkeysyms.h> #include <glib/gi18n.h> #include "ufraw.h" #include "ufraw_ui.h" @@ -1507,8 +1508,8 @@ *y = *y * data->UF->initialHeight / height; } -static gboolean preview_button_press(GtkWidget *event_box, GdkEventButton *event, - gpointer user_data) +static gboolean preview_button_press_event(GtkWidget *event_box, + GdkEventButton *event, gpointer user_data) { preview_data *data = get_preview_data(event_box); (void)user_data; @@ -1532,8 +1533,8 @@ return FALSE; } -static gboolean preview_button_release(GtkWidget *event_box, GdkEventButton *event, - gpointer user_data) +static gboolean preview_button_release_event(GtkWidget *event_box, + GdkEventButton *event, gpointer user_data) { preview_data *data = get_preview_data(event_box); (void)user_data; @@ -1643,8 +1644,8 @@ return TRUE; } -static gboolean preview_motion_notify(GtkWidget *event_box, GdkEventMotion *event, - gpointer user_data) +static gboolean preview_motion_notify_event(GtkWidget *event_box, + GdkEventMotion *event, gpointer user_data) { preview_data *data = get_preview_data(event_box); @@ -1665,6 +1666,18 @@ return TRUE; } +static gboolean (*gtk_image_view_scroll_event)(GtkWidget *widget, + GdkEventScroll *event); + +static gboolean preview_scroll_event(GtkWidget *widget, GdkEventScroll *event) +{ + // GtkImageView only knows how to handle scroll up or down + if ( event->direction==GDK_SCROLL_UP || + event->direction==GDK_SCROLL_DOWN ) + (*gtk_image_view_scroll_event)(widget, event); + return TRUE; +} + static void create_base_image(preview_data *data) { int shrinkSave = CFG->shrink; @@ -4894,13 +4907,31 @@ #endif data->PreviewButtonPressed = FALSE; g_signal_connect(G_OBJECT(PreviewEventBox), "button-press-event", - G_CALLBACK(preview_button_press), NULL); + G_CALLBACK(preview_button_press_event), NULL); g_signal_connect(G_OBJECT(PreviewEventBox), "button-release-event", - G_CALLBACK(preview_button_release), NULL); + G_CALLBACK(preview_button_release_event), NULL); g_signal_connect(G_OBJECT(PreviewEventBox), "motion-notify-event", - G_CALLBACK(preview_motion_notify), NULL); + G_CALLBACK(preview_motion_notify_event), NULL); gtk_widget_add_events(PreviewEventBox, GDK_POINTER_MOTION_MASK); + // Hide zoom key bindings from GtkImageView + GtkImageViewClass *klass = + GTK_IMAGE_VIEW_GET_CLASS(GTK_IMAGE_VIEW(data->PreviewWidget)); + GtkBindingSet *binding_set = gtk_binding_set_by_class(klass); + gtk_binding_entry_remove(binding_set, GDK_1, 0); + gtk_binding_entry_remove(binding_set, GDK_2, 0); + gtk_binding_entry_remove(binding_set, GDK_3, 0); + gtk_binding_entry_remove(binding_set, GDK_plus, 0); + gtk_binding_entry_remove(binding_set, GDK_equal, 0); + gtk_binding_entry_remove(binding_set, GDK_KP_Add, 0); + gtk_binding_entry_remove(binding_set, GDK_minus, 0); + gtk_binding_entry_remove(binding_set, GDK_KP_Subtract, 0); + gtk_binding_entry_remove(binding_set, GDK_x, 0); + // GtkImageView should only get the scoll up/down events + GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; + gtk_image_view_scroll_event = widget_class->scroll_event; + widget_class->scroll_event = preview_scroll_event; + data->ProgressBar = GTK_PROGRESS_BAR(gtk_progress_bar_new()); gtk_box_pack_start(GTK_BOX(vBox), GTK_WIDGET(data->ProgressBar), FALSE, FALSE, 0); |