
* Sync with ubuntu: * debian/rules: Make test failures fatal again * debian/libgtk-3-0.symbols: Updated * debian/rules: Update build-depends * debian/libgtk-3-bin.install: Add gtk-launch: A new commandline utility to launch an application from its desktop file * Add autopkgtest support * debian/patches/072_statusicon_icon_size.patch: * Removed merged upstream * debian/patches/074_try-harder-to-discriminate-Shift-F10-and-F10.patch: * Removed, fixed upstream * debian/patches/073_transparent_colors.patch * Removed, fixed upstream * debian/control.in: bump glib2.0 build-dep to >= 2.33.14 to trump the dodgy version in unstable
212 lines
7.6 KiB
Diff
212 lines
7.6 KiB
Diff
Reverts ad48f4d52bbac6139dd829fcc421ad16441f34d2
|
|
Add back the feature but in a different way:
|
|
* requires the Alt modifier
|
|
* works from the whole area
|
|
See GNOME #630226 and #145244
|
|
|
|
Index: gtk+-3.2.2/gtk/gtkcalendar.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkcalendar.c 2011-11-07 19:47:34.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkcalendar.c 2011-11-13 02:59:34.922905814 +0100
|
|
@@ -3161,6 +3161,10 @@
|
|
{
|
|
GtkCalendar *calendar = GTK_CALENDAR (widget);
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
if (event->direction == GDK_SCROLL_UP)
|
|
{
|
|
if (!gtk_widget_has_focus (widget))
|
|
Index: gtk+-3.2.2/gtk/gtkcombobox.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkcombobox.c 2011-11-11 23:39:31.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkcombobox.c 2011-11-13 02:59:34.926905815 +0100
|
|
@@ -3002,6 +3002,10 @@
|
|
GtkTreeIter iter;
|
|
GtkTreeIter new_iter;
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
if (!gtk_combo_box_get_active_iter (combo_box, &iter))
|
|
return TRUE;
|
|
|
|
Index: gtk+-3.2.2/gtk/gtkmenu.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkmenu.c 2011-11-11 23:39:31.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkmenu.c 2011-11-13 02:59:34.930905815 +0100
|
|
@@ -3954,6 +3954,10 @@
|
|
{
|
|
GtkMenu *menu = GTK_MENU (widget);
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
switch (event->direction)
|
|
{
|
|
case GDK_SCROLL_RIGHT:
|
|
Index: gtk+-3.2.2/gtk/gtknotebook.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtknotebook.c 2011-11-12 03:52:24.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtknotebook.c 2011-11-13 02:59:34.934905815 +0100
|
|
@@ -345,6 +345,8 @@
|
|
GtkAllocation *allocation);
|
|
static gint gtk_notebook_draw (GtkWidget *widget,
|
|
cairo_t *cr);
|
|
+static gboolean gtk_notebook_scroll (GtkWidget *widget,
|
|
+ GdkEventScroll *event);
|
|
static gint gtk_notebook_button_press (GtkWidget *widget,
|
|
GdkEventButton *event);
|
|
static gint gtk_notebook_button_release (GtkWidget *widget,
|
|
@@ -648,6 +650,7 @@
|
|
widget_class->get_preferred_height_for_width = gtk_notebook_get_preferred_height_for_width;
|
|
widget_class->size_allocate = gtk_notebook_size_allocate;
|
|
widget_class->draw = gtk_notebook_draw;
|
|
+ widget_class->scroll_event = gtk_notebook_scroll;
|
|
widget_class->button_press_event = gtk_notebook_button_press;
|
|
widget_class->button_release_event = gtk_notebook_button_release;
|
|
widget_class->popup_menu = gtk_notebook_popup_menu;
|
|
@@ -1887,7 +1890,8 @@
|
|
attributes.event_mask = gtk_widget_get_events (widget);
|
|
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
|
|
GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK |
|
|
- GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK);
|
|
+ GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK |
|
|
+ GDK_SCROLL_MASK);
|
|
attributes_mask = GDK_WA_X | GDK_WA_Y;
|
|
|
|
priv->event_window = gdk_window_new (gtk_widget_get_parent_window (widget),
|
|
@@ -2810,6 +2814,38 @@
|
|
return FALSE;
|
|
}
|
|
|
|
+static gboolean
|
|
+gtk_notebook_scroll (GtkWidget *widget,
|
|
+ GdkEventScroll *event)
|
|
+{
|
|
+ GtkNotebook *notebook = GTK_NOTEBOOK (widget);
|
|
+ GtkNotebookPrivate *priv = notebook->priv;
|
|
+ gint i;
|
|
+
|
|
+ if (!priv->cur_page)
|
|
+ return FALSE;
|
|
+
|
|
+ /* Only actually scroll when Mod1 is pressed.
|
|
+ This allows us to scroll from the page contents
|
|
+ or the action area too */
|
|
+ if (!(event->state & GDK_MOD1_MASK))
|
|
+ return FALSE;
|
|
+
|
|
+ switch (event->direction)
|
|
+ {
|
|
+ case GDK_SCROLL_RIGHT:
|
|
+ case GDK_SCROLL_DOWN:
|
|
+ gtk_notebook_next_page (notebook);
|
|
+ break;
|
|
+ case GDK_SCROLL_LEFT:
|
|
+ case GDK_SCROLL_UP:
|
|
+ gtk_notebook_prev_page (notebook);
|
|
+ break;
|
|
+ }
|
|
+
|
|
+ return TRUE;
|
|
+}
|
|
+
|
|
static GList*
|
|
get_tab_at_pos (GtkNotebook *notebook, gint x, gint y)
|
|
{
|
|
Index: gtk+-3.2.2/gtk/gtkpathbar.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkpathbar.c 2011-11-07 19:47:35.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkpathbar.c 2011-11-13 02:59:34.938905813 +0100
|
|
@@ -757,6 +757,10 @@
|
|
gtk_path_bar_scroll (GtkWidget *widget,
|
|
GdkEventScroll *event)
|
|
{
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
switch (event->direction)
|
|
{
|
|
case GDK_SCROLL_RIGHT:
|
|
Index: gtk+-3.2.2/gtk/gtkrange.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkrange.c 2011-11-11 23:39:31.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkrange.c 2011-11-13 02:59:34.938905813 +0100
|
|
@@ -2748,6 +2748,10 @@
|
|
GtkRange *range = GTK_RANGE (widget);
|
|
GtkRangePrivate *priv = range->priv;
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
if (gtk_widget_get_realized (widget))
|
|
{
|
|
gdouble delta;
|
|
Index: gtk+-3.2.2/gtk/gtkscalebutton.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkscalebutton.c 2011-11-11 23:39:31.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkscalebutton.c 2011-11-13 02:59:34.942905810 +0100
|
|
@@ -848,6 +848,10 @@
|
|
if (event->type != GDK_SCROLL)
|
|
return FALSE;
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
d = gtk_scale_button_get_value (button);
|
|
if (event->direction == GDK_SCROLL_UP)
|
|
{
|
|
Index: gtk+-3.2.2/gtk/gtkscrolledwindow.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkscrolledwindow.c 2011-11-11 23:39:31.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkscrolledwindow.c 2011-11-13 02:59:34.942905810 +0100
|
|
@@ -1852,6 +1852,10 @@
|
|
scrolled_window = GTK_SCROLLED_WINDOW (widget);
|
|
priv = scrolled_window->priv;
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
if (event->direction == GDK_SCROLL_UP || event->direction == GDK_SCROLL_DOWN)
|
|
range = priv->vscrollbar;
|
|
else
|
|
Index: gtk+-3.2.2/gtk/gtkspinbutton.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtkspinbutton.c 2011-11-11 23:39:31.000000000 +0100
|
|
+++ gtk+-3.2.2/gtk/gtkspinbutton.c 2011-11-13 02:59:34.946905809 +0100
|
|
@@ -1181,6 +1181,10 @@
|
|
GtkSpinButton *spin = GTK_SPIN_BUTTON (widget);
|
|
GtkSpinButtonPrivate *priv = spin->priv;
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
if (event->direction == GDK_SCROLL_UP)
|
|
{
|
|
if (!gtk_widget_has_focus (widget))
|
|
Index: gtk+-3.2.2/gtk/gtktreeview.c
|
|
===================================================================
|
|
--- gtk+-3.2.2.orig/gtk/gtktreeview.c 2011-11-13 02:59:31.902905921 +0100
|
|
+++ gtk+-3.2.2/gtk/gtktreeview.c 2011-11-13 02:59:34.950905810 +0100
|
|
@@ -15106,6 +15106,10 @@
|
|
{
|
|
gboolean retval = FALSE;
|
|
|
|
+ /* Ignore Alt-scroll to allow it to be taken by GtkNotebook */
|
|
+ if (event->state & GDK_MOD1_MASK)
|
|
+ return FALSE;
|
|
+
|
|
if (event->direction == GDK_SCROLL_UP)
|
|
{
|
|
gtk_tree_view_search_move (widget, tree_view, TRUE);
|