Commit Graph

253 Commits

Author SHA1 Message Date
Matthias Clasen
17df875136 Add a create-window signal that allows to override the global
2007-06-04  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkmarshalers.list:
        * gtk/gtknotebook.[hc]: Add a create-window signal that allows
        to override the global create-window-hook on a per-notebook
        basis. The default handler falls back to the global hook.
        (#386935, Christian Hammond)


svn path=/trunk/; revision=18024
2007-06-04 14:39:56 +00:00
Xan Lopez
fbfc884e0a Remove g_return_if_fail checks from private functions.
svn path=/trunk/; revision=18010
2007-06-03 04:28:16 +00:00
Xan Lopez
96a53e9bc0 The page num parameter is unused is redundant and unused in
the the switch_page and real_switch_page functions.

svn path=/trunk/; revision=18009
2007-06-03 04:27:56 +00:00
Xan Lopez
88c71fd5f6 Small cleanup in gtk_notebook_set_current_page and fix doc typo.
svn path=/trunk/; revision=17979
2007-05-29 22:13:42 +00:00
Matthias Clasen
21fb3a962a Document new api
svn path=/trunk/; revision=17929
2007-05-26 18:51:06 +00:00
Yevgen Muntyan
1a534510aa missing #include <ctype.h>.
2007-05-23  Yevgen Muntyan  <muntyan@tamu.edu>

	* gtk/gtkprintunixdialog.c: missing #include <ctype.h>.

	* gtk/gtkhandlebox.c (gtk_handle_box_paint):
	* gtk/gtkpagesetupunixdialog.c (_gtk_load_custom_papers):
	* gtk/gtkstatusbar.c (gtk_statusbar_get_context_id):
	* gtk/gtkiconcache.c (_gtk_icon_cache_new_for_path):
	* gtk/gtktrayicon-x11.c (gtk_tray_icon_send_dock_request):
	* gtk/gtkpreview.c (gtk_preview_finalize):
	* gtk/gtknotebook.c (gtk_notebook_set_group_id):
	* tests/testnotebookdnd.c (window_creation_function):
	* tests/testiconview.c (do_popup_menu):
	Fixed some compiler warnings (#440689).

svn path=/trunk/; revision=17898
2007-05-23 15:06:03 +00:00
Matthias Clasen
40d5981322 Deprecate gtk_notebook_[gs]et_group_id in favour of new functions
2007-05-19  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtk.symbols:
        * gtk/gtknotebook.[hc]: Deprecate gtk_notebook_[gs]et_group_id
        in favour of new functions gtk_notebook_[gs]et_group, which
        takes a pointer as group identifier and makes it easier to
        avoid group id collisions.  (#386930, Christian Hammond)

        * tests/testnotebookdnd.c: Use new grouping api.



svn path=/trunk/; revision=17873
2007-05-19 05:22:00 +00:00
Carlos Garnacho
b2128325cc Allow widgets up in the hierarchy to run their DnD handlers if the target
2007-05-18  Carlos Garnacho  <carlos@imendio.com>

        * gtk/gtknotebook.c (gtk_notebook_init) (gtk_notebook_drag_motion)
        (gtk_notebook_drag_drop): Allow widgets up in the hierarchy to run
        their DnD handlers if the target doesn't match with anything the
        notebook manages. (#350665, Joakim Lundborg).


svn path=/trunk/; revision=17860
2007-05-18 11:07:04 +00:00
Carlos Garnacho
a1498f7697 Do not unset the brand new current page if there was none set previously.
2007-05-18  Carlos Garnacho  <carlos@imendio.com>

        * gtk/gtknotebook.c (gtk_notebook_real_insert_page): Do not unset
        the brand new current page if there was none set previously. Fixes
        #425138 (Reported by Michail Crayson). Some code simplifications.
        (gtk_notebook_draw_arrow): code style fix.


svn path=/trunk/; revision=17858
2007-05-18 09:42:52 +00:00
Xan Lopez
a1688f7fd5 s/arrow-size/arrow-spacing in the arrow-spacing style property docs.
* gtk/gtknotebook.c (gtk_notebook_class_init): 
	s/arrow-size/arrow-spacing in the arrow-spacing
	style property docs.

svn path=/trunk/; revision=17585
2007-04-07 09:33:15 +00:00
Matthias Clasen
500435f2f9 Fix tabbed browsing in epiphany. (#413664, Christian Persch)
2007-03-13  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_real_insert_page):
        Fix tabbed browsing in epiphany.  (#413664, Christian Persch)



svn path=/trunk/; revision=17505
2007-03-13 15:08:56 +00:00
Matthias Clasen
9aca5027dd Set child visibility to FALSE here; it will be turned back on in
2007-03-08  Matthias Clasen <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_real_insert_page):
        Set child visibility to FALSE here; it will be turned
        back on in switch_page.  (#413664, Carlos Garnacho)



svn path=/trunk/; revision=17434
2007-03-09 04:44:20 +00:00
Matthias Clasen
85832deef3 Avoid some unnecessary gtk_widget_get_style() calls.
2007-01-27  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_draw_arrow):
        (gtk_notebook_draw_focus): Avoid some unnecessary
        gtk_widget_get_style() calls.



svn path=/trunk/; revision=17229
2007-01-28 04:41:52 +00:00
Matthias Clasen
a9f990f519 Left-align menu labels. (#393255, Michail Crayson)
2007-01-05  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_set_menu_label_text): Left-align
        menu labels.  (#393255, Michail Crayson)



svn path=/trunk/; revision=17095
2007-01-06 03:02:31 +00:00
Carlos Garnacho
34039c7008 take into account both scroll arrows when calculating size request in
2007-01-05  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c (gtk_notebook_size_request): take into account
        both scroll arrows when calculating size request in GTK_POS_LEFT or
        GTK_POS_RIGHT notebooks. (#393124, reported by Christian Persch)


svn path=/trunk/; revision=17080
2007-01-05 17:29:49 +00:00
Matthias Clasen
c8823f99e1 Only handle key bindings for tab reordering if the tabs are shown and
2007-01-01  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.h:
        * gtk/gtknotebook.c: Only handle key bindings for
        tab reordering if the tabs are shown and reorderable.
        (#390468, Yevgen Muntyan)

        * gtk/gtkmarshalers.list: Add required marshaler



svn path=/trunk/; revision=17008
2007-01-02 06:22:37 +00:00
Carlos Garnacho
35ac74a037 return if the widget that originally received the event is a notebook
2006-12-29  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c (gtk_notebook_scroll): return if the widget that
        originally received the event is a notebook page. (#315440, reported
        by Mateusz Stefek)
2006-12-29 19:11:32 +00:00
Carlos Garnacho
d42bbb6466 Make GtkNotebook able to drop detached tabs anywhere. Bug #360225.
2006-12-28  Carlos Garnacho  <carlosg@gnome.org>

        Make GtkNotebook able to drop detached tabs anywhere. Bug #360225.

        * gtk/gtkwidget.c (gtk_widget_class_init): add "drag-failed" signal.
        * gtk/gtkmarshalers.list: add new marshaler definition.
        * gtk/gtkenums.h: add GtkDragResult enum.

        * gtk/gtkdnd.c (gtk_drag_drop_finished): emit "drag-failed" if DND
        operation wasn't successful.
        (_gtk_drag_source_handle_event) (gtk_drag_drop)
        (gtk_drag_selection_get) (gtk_drag_cancel) (gtk_drag_key_cb)
        (gtk_drag_grab_broken_event_cb) (gtk_drag_grab_notify_cb)
        (gtk_drag_button_release_cb) (gtk_drag_abort_timeout): tell
        gtk_drag_drop_finished() the operation result.

        * gtk/gtknotebook.c (gtk_notebook_drag_failed): new function.
        (gtk_notebook_drag_data_get): do not call window creation hook here.
        (gtk_notebook_init): do not set "application/x-rootwindow-drop"
        target, instead connect to "drag-failed".
        (gtk_notebook_draw_focus): fix potential crasher if cur_page is NULL.
2006-12-28 16:38:49 +00:00
Christian Persch
0b75f7a30f Return the correct value from gtk_notebook_insert_page if the page-added
2006-12-26  Christian Persch  <chpe@cvs.gnome.org>

	* gtk/gtknotebook.c: (gtk_notebook_real_insert_page):
	Return the correct value from gtk_notebook_insert_page if the
	page-added handler reorders the tabs. Bug #345094.
2006-12-26 14:49:34 +00:00
Carlos Garnacho
43e3082a43 Fix small regressions in GtkNotebook tab detaching. Bug #378852.
2006-12-26  Carlos Garnacho  <carlosg@gnome.org>

        Fix small regressions in GtkNotebook tab detaching. Bug #378852.

        * gtk/gtknotebook.c (gtk_notebook_do_arrow): grab focus to allow tabs
        scrolling when hovering with a detached tab.
        (gtk_notebook_stop_reorder): Do not deparent the wrong tab if the
        focus tab has changed during a tab DND operation.
        (gtk_notebook_drag_end): ensure that the dropped tab gets focused.
        (gtk_notebook_paint): do not take cur_page as a reference to paint the
        box if it's detached.
        (gtk_notebook_calculate_tabs_allocation): focus_tab may be different
        to the detached tab if we hover the arrows during a tabs detaching
        operation, do not allocate it unconditionally in 0,0.
2006-12-26 11:02:15 +00:00
Carlos Garnacho
c1077874a0 Expose improvements for GtkNotebook. Bug #383435
2006-12-26  Carlos Garnacho  <carlosg@gnome.org>

        Expose improvements for GtkNotebook. Bug #383435

        * gtk/gtknotebook.c (gtk_notebook_expose): propagate the event to tab
        labels.
        (gtk_notebook_draw_focus): do not repaint the whole focused tab again.
        (gtk_notebook_draw_tab): do not send handmade expose events to tab
        labels.
2006-12-26 10:31:36 +00:00
Matthias Clasen
721c3bc101 Replace a lot of idle and timeout calls by the new gdk_threads api.
2006-12-22  Matthias Clasen  <mclasen@redhat.com>

        * *.c: Replace a lot of idle and timeout calls by
        the new gdk_threads api.
2006-12-22 19:10:43 +00:00
Michael Natterer
7f374a74ba Add new infrastructure for notifications of failed keyboard navigation and
2006-11-16  Michael Natterer  <mitch@imendio.com>

	Add new infrastructure for notifications of failed keyboard
	navigation and navigation with restricted set of keys.

	The patch handles configurable beeping, navigating the GUI with
	cursor keys only (as in phone environments), and configurable
	wrap-around. Fixes bugs #322640, #70986, #318827, #334726, #334742
	and #309291.

	* gtk/gtksettings.c: added properties gtk-keynav-cursor-only,
	gtk-keynav-wrap-around and gtk-error-bell.

	* gtk/gtkwidget.[ch]: added new signal "keynav-failed" and public
	API to emit it. Added New function gtk_widget_error_bell() which
	looks at the gtk-error-bell setting and calls gdk_window_beep()
	accordingly.

	* gtk/gtk.symbols: add the new widget symbols.

	* gtk/gtkcellrendereraccel.c
	* gtk/gtkimcontextsimple.c
	* gtk/gtkmenu.c
	* gtk/gtknotebook.c: use gtk_widget_error_bell() or look at the
	gtk-error-bell setting instead of calling gdk_display_beep()
	unconditionally.

	* gtk/gtkcombobox.c
	* gtk/gtkentry.c
	* gtk/gtkiconview.c
	* gtk/gtklabel.c
	* gtk/gtkmenushell.c
	* gtk/gtkspinbutton.c
	* gtk/gtktextview.c
	* gtk/gtktreeview.c: call gtk_widget_error_bell() on failed keynav.

	* gtk/gtkentry.c
	* gtk/gtklabel.c
	* gtk/gtkrange.c
	* gtk/gtktextview.c: consult gtk_widget_keynav_failed() on failed
	cursor navigation and leave the widget if it returns FALSE.

	* gtk/gtkmenushell.c
	* gtk/gtknotebook.c: only wrap around if gtk-keynav-wrap-around
	is TRUE.

	* gtk/gtkradiobutton.c: ask gtk_widget_keynav_failed() to decide
	whether to to wrap-around, and don't select active items on cursor
	navigation if gtk-keynav-cursor-only is TRUE. Should look at
	gtk-keynav-wrap-around too, will look into that.
2006-11-16 12:56:30 +00:00
Carlos Garnacho
d03d8e9e40 make non-focused tabs xthickness/ythickness thinner. (#353962)
2006-11-07  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c (gtk_notebook_calculate_tabs_allocation): make
        non-focused tabs xthickness/ythickness thinner. (#353962)
2006-11-07 16:54:34 +00:00
Matthias Clasen
16d8cb9559 Only reorder tabs if the focus is in the tab. (#350342, Carlos Garnacho
2006-10-08 Matthias Clasen <mclasen@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_reorder_tab): Only
	reorder tabs if the focus is in the tab.  (#350342, Carlos
	Garnacho Parro)
2006-10-08 19:00:31 +00:00
Matthias Clasen
07e7719441 Apply a cleanup patch by Kjartan Maraas (#341812)
2006-10-08  Matthias Clasen  <mclasen@redhat.com>

	* Apply a cleanup patch by Kjartan Maraas  (#341812)
2006-10-08 05:07:55 +00:00
Matthias Clasen
f45a35921a Commit a patch by Behdad to fix typos, omissions and other errors in the
2006-09-10  Matthias Clasen  <mclasen@redhat.com>

        * Commit a patch by Behdad to fix typos, omissions and other
        errors in the symbol aliasing, and add checks for local PLT
        entries.  (#354687, Behdad Esfahbod)
2006-09-10 06:39:16 +00:00
Matthias Clasen
a4894aa25f Explain some quirks of this function. (#351112,
2006-08-16  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_set_current_page): Explain
	some quirks of this function.  (#351112,
2006-08-16 14:38:02 +00:00
Matthias Clasen
68b5beea41 Remove. (gtk_notebook_motion_notify): Instead, update the arrow state
2006-08-15  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_enter_notify): Remove.
        (gtk_notebook_motion_notify): Instead, update the arrow
        state here.  (#349570, Benjamin Otte)
2006-08-15 06:59:55 +00:00
Matthias Clasen
a21deb2d2f (gtk_notebook_drag_motion): Don't accept drops on
arrows.  (#348706, Benjamin Otte)
2006-08-06 04:15:23 +00:00
Matthias Clasen
ab299968d0 Don't allow dragging a notebook tab to one of its children. (#348626,
2006-08-06  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_drag_motion): Don't allow
	dragging a notebook tab to one of its children.  (#348626,
	Benjamin Otte)
2006-08-06 04:10:11 +00:00
Matthias Clasen
2e7184f51b Improve drawing of tabs 2006-07-21 05:20:13 +00:00
Matthias Clasen
53a94e60c9 Unset the during_reorder flag. (#348049, Sven Herzberg, patch by Benjamin
2006-07-21  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_stop_reorder): Unset
        the during_reorder flag.  (#348049, Sven Herzberg, patch
        by Benjamin Otte)
2006-07-21 04:44:24 +00:00
Matthias Clasen
1f9befb77a Don't undo reordering if we haven't been reordering. (#346836, Ed Catmur)
2006-07-17  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_stop_reorder): Don't undo
	reordering if we haven't been reordering.  (#346836, Ed Catmur)
2006-07-17 17:22:31 +00:00
Matthias Clasen
a0482815e7 Remove redundant assignments to page, which may cause NULL dereferences.
2006-06-30  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_tab_space): Remove
        redundant assignments to page, which may cause NULL
        dereferences.  (#346334, Dave Vasilevsky)
2006-07-02 15:12:40 +00:00
Carlos Garnacho
1cd8afc8ad unset the pressed button here. (gtk_notebook_grab_notify): stop reorder
2006-06-20  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c (gtk_notebook_stop_reorder): unset the pressed
        button here.
        (gtk_notebook_grab_notify): stop reorder when the widget becomes
        shadowed. Fixes bug #335873
2006-06-20 11:48:21 +00:00
Carlos Garnacho
664b8c7b47 use gdk_window_get_pointer() to get pointer coordinates, but limit its
2006-06-15  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c (gtk_notebook_motion_notify): use
        gdk_window_get_pointer() to get pointer coordinates, but limit its
        calls to a maximum of 45 times per second for not being too
        CPU/network abusive. stop drag operation if (event->state &
        GDK_BUTTON1_MASK) is FALSE to prevent tabs from "adhering" to the
        pointer. Fixes bug #341571
        (gtk_notebook_calculate_tabs_allocation), (gtk_notebook_button_press):
        get rid of the "tab jumps to pointer" sensation when beginning a drag
        by using the pointer offset in the tab when the drag begins as an
        anchor.
        (gtk_notebook_redraw_tabs_union): remove, it wasn't worth the little
        performance gain and could draw artifacts under some circumstances.
        (gtk_notebook_drag_end): do not reparent the detached tab label until
        the animation has ended.
2006-06-15 18:46:03 +00:00
Matthias Clasen
7843d8b478 Add a destroy notify for the callback data. (#344209, Murray Cumming)
2006-06-07  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.h:
        * gtk/gtknotebook.c (gtk_notebook_set_window_creation_hook):
        Add a destroy notify for the callback data.  (#344209,
        Murray Cumming)
2006-06-08 00:17:00 +00:00
Matthias Clasen
1a98d20c19 Fix borderline cases in tab visibility calculation. (#168105, Carlos
2006-06-04  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_calculate_shown_tabs):
        (gtk_notebook_calc_tabs): Fix borderline cases in tab
        visibility calculation.  (#168105, Carlos Garnacho Parro)
2006-06-05 01:38:49 +00:00
Matthias Clasen
b2af13f123 Fix a boundary case in scrolling where a tab was not shown. (#168105,
2006-05-19  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c (gtk_notebook_pages_allocate): Fix a
	boundary case in scrolling where a tab was not shown.  (#168105,
	Hiroyuki Ikezoe, patch by Kouhei Sutou)
2006-05-19 16:04:32 +00:00
Matthias Clasen
113f364a37 More of the same 2006-05-14 04:25:34 +00:00
Matthias Clasen
171fb95f74 Fix some corner cases in the size allocation logic for tabs. (#341577,
2006-05-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c: Fix some corner cases in the size
	allocation logic for tabs.  (#341577, Carlos Garnacho Parro)
2006-05-13 03:16:09 +00:00
Matthias Clasen
ae730afdbb Handle tab_label being NULL better. (#341455, William Jon McCann, patch by
2006-05-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c: Handle tab_label being NULL better.
	(#341455, William Jon McCann, patch by Carlos Garnacho Parro)
2006-05-13 02:56:04 +00:00
Carlos Garnacho
f4cc71445a check that tab_label is not NULL before checking that it's notebook's
2006-05-10  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c: check that tab_label is not NULL before checking
        that it's notebook's child. Closes #341247.
2006-05-10 15:58:48 +00:00
Tim Janik
4e8e3add5b applied unified patch for configurable scroll arrow sizes from bug #333632
Wed May 10 15:57:53 2006  Tim Janik  <timj@imendio.com>

        * applied unified patch for configurable scroll arrow sizes from
        bug #333632 and bug #325282.

        * gtk/gtkwidget.c (gtk_widget_class_init): added ::scroll-arrow-hlength
        and ::scroll-arrow-vlength style properties. fixed upper limit for
        ::separator-width and ::separator-height to be MAXINT.

        * gtk/gtkmenu.c: use GtkWidget::scroll-arrow-vlength to determine the
        scroll arrow size, instead of using a hard coded constant.

        * gtk/gtknotebook.c: use GtkWidget::scroll-arrow-vlength and
        GtkWidget::scroll-arrow-hlength to determine scroll arrow sizes.
        added GtkNotebook::arrow-spacing style property to configure the
        spacing between scroll arrows.
2006-05-10 14:02:20 +00:00
Carlos Garnacho
5c53411e77 create an independent GdkWindow to behave nicely during reordering with
2006-05-09  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c: create an independent GdkWindow to behave nicely
        during reordering with tab_labels with their own window, also use
        gtk_drag_set_icon_widget() for the DnD icon to avoid drawing garbage
        from offscreen regions. Closes bug #335707.
        (gtk_notebook_tab_space), (gtk_notebook_calculate_shown_tabs),
        (gtk_notebook_calculate_tabs_allocation): new functions,
        gtk_notebook_pages_allocate() functionality has been splitted into
        these.
2006-05-09 02:36:08 +00:00
Matthias Clasen
c0f7f08a0e Fix doc typos.
2006-05-08  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtknotebook.c:
	* gtk/gtkwindow.c:
	* gtk/gtkrange.c: Fix doc typos.
2006-05-08 14:50:33 +00:00
Matthias Clasen
f26aad1916 Boilerplate reduction 2006-05-02 23:56:43 +00:00
Carlos Garnacho
27f53394be removed wrong condition check that caused tab labels not to be drawn under
2006-04-18  Carlos Garnacho  <carlosg@gnome.org>

        * gtk/gtknotebook.c (gtk_notebook_pages_allocate): removed wrong
        condition check that caused tab labels not to be drawn under certain
        circumstances. Bug #338734.
2006-04-18 09:55:51 +00:00
Matthias Clasen
6afcd45024 Reorganize to avoid a possible NULL dereference. (Coverity)
2006-04-12  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtknotebook.c (gtk_notebook_page_allocate): Reorganize
        to avoid a possible NULL dereference.  (Coverity)
2006-04-12 21:22:42 +00:00