summaryrefslogtreecommitdiff
path: root/gtk/gtknotebook.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-03-07 15:39:31 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-03-07 15:39:31 +0000
commita67723b05d4350eaa6b15d086f182e6e45933d7e (patch)
tree98c6f1d2b3b1feff286a010b1af2b3bcb9d633c5 /gtk/gtknotebook.c
parent1dad43b9466865e3bb7d8847a2af0c5555b890fd (diff)
downloadgdk-pixbuf-a67723b05d4350eaa6b15d086f182e6e45933d7e.tar.gz
Fix problem where there were two copies of the "do an arrow step" code,
Thu Mar 7 10:31:57 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtknotebook.c (gtk_notebook_timer): Fix problem where there were two copies of the "do an arrow step" code, one correct for rotated notebooks, one not. (#73855, Thomas Leonard.)
Diffstat (limited to 'gtk/gtknotebook.c')
-rw-r--r--gtk/gtknotebook.c53
1 files changed, 25 insertions, 28 deletions
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index 8eb626ad8..e5361afc3 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -1449,6 +1449,27 @@ gtk_notebook_get_arrow (GtkNotebook *notebook,
return 0;
}
+static void
+gtk_notebook_do_arrow (GtkNotebook *notebook,
+ GtkArrowType arrow)
+{
+ GtkWidget *widget = GTK_WIDGET (notebook);
+ GtkDirectionType dir;
+
+ if (!notebook->focus_tab ||
+ gtk_notebook_search_page (notebook, notebook->focus_tab,
+ arrow == GTK_ARROW_LEFT ? STEP_PREV : STEP_NEXT,
+ TRUE))
+ {
+ if (notebook->tab_pos == GTK_POS_LEFT ||
+ notebook->tab_pos == GTK_POS_RIGHT)
+ dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_UP : GTK_DIR_DOWN;
+ else
+ dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_LEFT : GTK_DIR_RIGHT;
+ gtk_widget_child_focus (widget, dir);
+ }
+}
+
static gboolean
gtk_notebook_arrow_button_press (GtkNotebook *notebook,
GtkArrowType arrow,
@@ -1464,19 +1485,7 @@ gtk_notebook_arrow_button_press (GtkNotebook *notebook,
if (event->button == 1)
{
- GtkDirectionType dir;
- if (!notebook->focus_tab ||
- gtk_notebook_search_page (notebook, notebook->focus_tab,
- arrow == GTK_ARROW_LEFT ? STEP_PREV : STEP_NEXT,
- TRUE))
- {
- if (notebook->tab_pos == GTK_POS_LEFT ||
- notebook->tab_pos == GTK_POS_RIGHT)
- dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_UP : GTK_DIR_DOWN;
- else
- dir = (arrow == GTK_ARROW_LEFT) ? GTK_DIR_LEFT : GTK_DIR_RIGHT;
- gtk_widget_child_focus (widget, dir);
- }
+ gtk_notebook_do_arrow (notebook, arrow);
if (!notebook->timer)
{
@@ -2293,23 +2302,11 @@ gtk_notebook_timer (GtkNotebook *notebook)
gboolean retval = FALSE;
GDK_THREADS_ENTER ();
-
+
if (notebook->timer)
{
- if (notebook->click_child == GTK_ARROW_LEFT)
- {
- if (!notebook->focus_tab ||
- gtk_notebook_search_page (notebook, notebook->focus_tab,
- STEP_PREV, TRUE))
- gtk_widget_child_focus (GTK_WIDGET (notebook), GTK_DIR_LEFT);
- }
- else if (notebook->click_child == GTK_ARROW_RIGHT)
- {
- if (!notebook->focus_tab ||
- gtk_notebook_search_page (notebook, notebook->focus_tab,
- STEP_NEXT, TRUE))
- gtk_widget_child_focus (GTK_WIDGET (notebook), GTK_DIR_RIGHT);
- }
+ gtk_notebook_do_arrow (notebook, notebook->click_child);
+
if (notebook->need_timer)
{
notebook->need_timer = FALSE;