diff options
-rw-r--r-- | terminal.ui | 248 | ||||
-rw-r--r-- | terminal.vala | 16 |
2 files changed, 135 insertions, 129 deletions
diff --git a/terminal.ui b/terminal.ui index c22fbec..bf3d8de 100644 --- a/terminal.ui +++ b/terminal.ui @@ -116,15 +116,13 @@ <property name="can-focus">False</property> <property name="icon-name">go-up-symbolic</property> </object> - <template class="Terminal" parent="GtkOverlay"> + <template class="Terminal" parent="GtkBox"> <property name="visible">True</property> <property name="can-focus">False</property> <child> - <object class="GtkScrolledWindow" id="scrolled_window"> + <object class="GtkOverlay" id="overlay"> <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="propagate-natural-width">True</property> - <property name="propagate-natural-height">True</property> + <property name="can-focus">False</property> <child> <object class="VteTerminal" id="vte"> <property name="visible">True</property> @@ -143,145 +141,163 @@ <signal name="scroll-event" handler="vte_scroll" swapped="no"/> <signal name="window-title-changed" handler="window_set_title" swapped="no"/> </object> + <packing> + <property name="index">-1</property> + </packing> </child> - </object> - <packing> - <property name="index">-1</property> - </packing> - </child> - <child type="overlay"> - <object class="GtkRevealer" id="search_revealer"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="halign">end</property> - <property name="valign">end</property> - <property name="transition-type">slide-up</property> - <child> - <object class="GtkBox" id="search_container"> + <child type="overlay"> + <object class="GtkRevealer" id="search_revealer"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="margin-start">5</property> - <property name="margin-end">5</property> - <property name="margin-top">5</property> - <property name="margin-bottom">5</property> - <property name="spacing">2</property> + <property name="halign">end</property> + <property name="valign">end</property> + <property name="transition-type">slide-up</property> <child> - <object class="GtkSearchEntry" id="search_entry"> + <object class="GtkBox" id="search_container"> <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="primary-icon-name">edit-find-symbolic</property> - <property name="primary-icon-activatable">False</property> - <property name="primary-icon-sensitive">False</property> - <property name="placeholder-text" translatable="yes">Search...</property> - <signal name="activate" handler="search_down" swapped="no"/> - <signal name="key-press-event" handler="search_entry_key_press" swapped="no"/> - <signal name="next-match" handler="search_down" swapped="no"/> - <signal name="previous-match" handler="search_up" swapped="no"/> - <signal name="search-changed" handler="search_changed" swapped="no"/> - <signal name="stop-search" handler="search_stop" swapped="no"/> + <property name="can-focus">False</property> + <property name="margin-start">5</property> + <property name="margin-end">5</property> + <property name="margin-top">5</property> + <property name="margin-bottom">5</property> + <property name="spacing">2</property> + <child> + <object class="GtkSearchEntry" id="search_entry"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="primary-icon-name">edit-find-symbolic</property> + <property name="primary-icon-activatable">False</property> + <property name="primary-icon-sensitive">False</property> + <property name="placeholder-text" translatable="yes">Search...</property> + <signal name="activate" handler="search_down" swapped="no"/> + <signal name="key-press-event" handler="search_entry_key_press" swapped="no"/> + <signal name="next-match" handler="search_down" swapped="no"/> + <signal name="previous-match" handler="search_up" swapped="no"/> + <signal name="search-changed" handler="search_changed" swapped="no"/> + <signal name="stop-search" handler="search_stop" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="search_button_down"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="tooltip-text" translatable="yes">Go to next result</property> + <property name="image">search_image_down</property> + <property name="always-show-image">True</property> + <signal name="clicked" handler="search_down" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="search_button_up"> + <property name="visible">True</property> + <property name="can-focus">True</property> + <property name="receives-default">True</property> + <property name="tooltip-text" translatable="yes">Go to previous result</property> + <property name="image">search_image_up</property> + <property name="always-show-image">True</property> + <signal name="clicked" handler="search_up" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack-type">end</property> + <property name="position">2</property> + </packing> + </child> </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> </child> - <child> - <object class="GtkButton" id="search_button_down"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">True</property> - <property name="tooltip-text" translatable="yes">Go to next result</property> - <property name="image">search_image_down</property> - <property name="always-show-image">True</property> - <signal name="clicked" handler="search_down" swapped="no"/> + </object> + <packing> + <property name="index">1</property> + </packing> + </child> + <child type="overlay"> + <object class="GtkInfoBar" id="infobar"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="valign">end</property> + <property name="show-close-button">True</property> + <property name="revealed">False</property> + <signal name="close" handler="infobar_close" swapped="no"/> + <signal name="response" handler="infobar_respond" swapped="no"/> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="infobar_buttons"> + <property name="can-focus">False</property> + <property name="spacing">6</property> + <property name="layout-style">end</property> + <child> + <placeholder/> + </child> </object> <packing> <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> + <property name="fill">False</property> + <property name="position">0</property> </packing> </child> - <child> - <object class="GtkButton" id="search_button_up"> - <property name="visible">True</property> - <property name="can-focus">True</property> - <property name="receives-default">True</property> - <property name="tooltip-text" translatable="yes">Go to previous result</property> - <property name="image">search_image_up</property> - <property name="always-show-image">True</property> - <signal name="clicked" handler="search_up" swapped="no"/> + <child internal-child="content_area"> + <object class="GtkBox" id="infobar_content"> + <property name="can-focus">False</property> + <property name="spacing">16</property> + <child> + <object class="GtkLabel" id="infobar_label"> + <property name="visible">True</property> + <property name="can-focus">False</property> + <property name="label" translatable="yes">Sample Error Message</property> + <property name="use-markup">True</property> + <property name="wrap">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> - <property name="fill">True</property> + <property name="fill">False</property> <property name="pack-type">end</property> - <property name="position">2</property> + <property name="position">0</property> </packing> </child> + <child> + <placeholder/> + </child> </object> + <packing> + <property name="index">2</property> + </packing> </child> </object> <packing> - <property name="index">1</property> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> </packing> </child> - <child type="overlay"> - <object class="GtkInfoBar" id="infobar"> + <child> + <object class="GtkScrollbar" id="scroll"> <property name="visible">True</property> <property name="can-focus">False</property> - <property name="valign">end</property> - <property name="show-close-button">True</property> - <property name="revealed">False</property> - <signal name="close" handler="infobar_close" swapped="no"/> - <signal name="response" handler="infobar_respond" swapped="no"/> - <child internal-child="action_area"> - <object class="GtkButtonBox" id="infobar_buttons"> - <property name="can-focus">False</property> - <property name="spacing">6</property> - <property name="layout-style">end</property> - <child> - <placeholder/> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child internal-child="content_area"> - <object class="GtkBox" id="infobar_content"> - <property name="can-focus">False</property> - <property name="spacing">16</property> - <child> - <object class="GtkLabel" id="infobar_label"> - <property name="visible">True</property> - <property name="can-focus">False</property> - <property name="label" translatable="yes">Sample Error Message</property> - <property name="use-markup">True</property> - <property name="wrap">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="pack-type">end</property> - <property name="position">0</property> - </packing> - </child> - <child> - <placeholder/> - </child> + <property name="no-show-all">True</property> + <property name="orientation">vertical</property> </object> <packing> - <property name="index">2</property> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> </packing> </child> </template> diff --git a/terminal.vala b/terminal.vala index d66fc51..69ae02e 100644 --- a/terminal.vala +++ b/terminal.vala @@ -1,5 +1,5 @@ [GtkTemplate (ui = "/weltschmerz/ui/terminal.ui")] -class Terminal : Gtk.Overlay { +class Terminal : Gtk.Box { const string URL_REGEX = """(?>https?|ftp):\/\/[^\s\$.?#].(?>[^\s()"]*|\([^\s]*\)|"[^\s"]*")"""; const uint PCRE2_CASELESS = 0x00000008u; const uint PCRE2_MULTILINE = 0x00000400u; @@ -30,8 +30,8 @@ class Terminal : Gtk.Overlay { [GtkChild] unowned Gtk.MenuItem copy_item_html; [GtkChild] unowned Gtk.MenuItem open_directory_item; [GtkChild] unowned Gtk.Revealer search_revealer; - [GtkChild] unowned Gtk.ScrolledWindow scrolled_window; [GtkChild] unowned Gtk.SearchEntry search_entry; + [GtkChild] unowned Gtk.Scrollbar scroll; [GtkChild] unowned Vte.Terminal vte; Gtk.Clipboard clipboard; Gtk.Settings settings; @@ -82,20 +82,10 @@ class Terminal : Gtk.Overlay { } } - Gtk.PolicyType get_scrollbar_policy(bool want_scrollbar) { - if (!want_scrollbar) - return Gtk.PolicyType.NEVER; - - if (!settings.gtk_overlay_scrolling || overlay_scrolling_env_override) - return Gtk.PolicyType.ALWAYS; - - return Gtk.PolicyType.AUTOMATIC; - } - public void load_config(bool reload) { var conf = new Config(); - scrolled_window.set_policy(Gtk.PolicyType.NEVER, get_scrollbar_policy(conf.scrollbar)); + scroll.set_adjustment(vte.get_vadjustment()); vte.set_font(conf.font); var char_width = (int)vte.get_char_width(); |