Kaydet (Commit) 0cde3c33 authored tarafından Caolán McNamara's avatar Caolán McNamara

tdf#120371 follow GNOME HIG on tab placement on mega tab notebooks

tradionally we do double/triple decker tab dialogs when there are a lot of tabs,
that option isn't available with native gtk3 notebooks.

Instead follow
https://developer.gnome.org/hig-book/unstable/controls-notebooks.html.en#controls-too-many-tabs
and when there are > 6 tabs position them at-left

Change-Id: I8e6ca78abeec3c1fa9f616c21f21fd7367be2ec9
Reviewed-on: https://gerrit.libreoffice.org/61487Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 5c9fe8c4
...@@ -6,8 +6,9 @@ ...@@ -6,8 +6,9 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="characterproperties|CharacterPropertiesDialog">Character</property> <property name="title" translatable="yes" context="characterproperties|CharacterPropertiesDialog">Character</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property> <property name="type_hint">dialog</property>
<child> <child>
<placeholder/> <placeholder/>
......
...@@ -6,7 +6,9 @@ ...@@ -6,7 +6,9 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="paradialog|ParagraphPropertiesDialog">Paragraph</property> <property name="title" translatable="yes" context="paradialog|ParagraphPropertiesDialog">Paragraph</property>
<property name="resizable">False</property> <property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property> <property name="type_hint">dialog</property>
<child> <child>
<placeholder/> <placeholder/>
......
...@@ -6,8 +6,9 @@ ...@@ -6,8 +6,9 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="templatedialog8|TemplateDialog8">Page Style</property> <property name="title" translatable="yes" context="templatedialog8|TemplateDialog8">Page Style</property>
<property name="resizable">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default_width">0</property>
<property name="default_height">0</property>
<property name="type_hint">dialog</property> <property name="type_hint">dialog</property>
<child> <child>
<placeholder/> <placeholder/>
......
...@@ -2808,12 +2808,21 @@ private: ...@@ -2808,12 +2808,21 @@ private:
return -1; return -1;
} }
// https://developer.gnome.org/hig-book/unstable/controls-notebooks.html.en#controls-too-many-tabs
// tdf#120371 If you have more than about six tabs in a notebook ... place
// the list control on the left-hand side of the window
void update_tab_pos()
{
gtk_notebook_set_tab_pos(m_pNotebook, get_n_pages() > 6 ? GTK_POS_LEFT : GTK_POS_TOP);
}
public: public:
GtkInstanceNotebook(GtkNotebook* pNotebook, bool bTakeOwnership) GtkInstanceNotebook(GtkNotebook* pNotebook, bool bTakeOwnership)
: GtkInstanceContainer(GTK_CONTAINER(pNotebook), bTakeOwnership) : GtkInstanceContainer(GTK_CONTAINER(pNotebook), bTakeOwnership)
, m_pNotebook(pNotebook) , m_pNotebook(pNotebook)
, m_nSignalId(g_signal_connect(pNotebook, "switch-page", G_CALLBACK(signalSwitchPage), this)) , m_nSignalId(g_signal_connect(pNotebook, "switch-page", G_CALLBACK(signalSwitchPage), this))
{ {
update_tab_pos();
} }
virtual int get_current_page() const override virtual int get_current_page() const override
...@@ -2879,6 +2888,7 @@ public: ...@@ -2879,6 +2888,7 @@ public:
{ {
disable_notify_events(); disable_notify_events();
gtk_notebook_remove_page(m_pNotebook, get_page_number(rIdent)); gtk_notebook_remove_page(m_pNotebook, get_page_number(rIdent));
update_tab_pos();
enable_notify_events(); enable_notify_events();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment