summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Arellano Cid <jcid@dillo.org>2011-03-23 11:42:35 -0300
committerJorge Arellano Cid <jcid@dillo.org>2011-03-23 11:42:35 -0300
commita8401c80019e376bc25db73b01d352bc764d294d (patch)
tree57a6f972e363fc9f1d0afc98e5bd71d5dcb8e6c1
parent7960052b9b50e81705794ebf7e29289d60740df2 (diff)
Made fullscreen work again (Ctrl+Space)
-rw-r--r--src/ui.cc46
-rw-r--r--src/ui.hh3
2 files changed, 36 insertions, 13 deletions
diff --git a/src/ui.cc b/src/ui.cc
index b1e8972d..2eb4f52c 100644
--- a/src/ui.cc
+++ b/src/ui.cc
@@ -356,16 +356,6 @@ static void b1_cb(Fl_Widget *wid, void *cb_data)
}
/*
- * Callback handler for fullscreen button press
- */
-//static void fullscreen_cb(Fl_Widget *wid, void *data)
-//{
-// /* TODO: do we want to toggle fullscreen or panelmode?
-// maybe we need to add another button?*/
-// ((UI*)data)->panelmode_cb_i();
-//}
-
-/*
* Callback for the bug meter button.
*/
static void bugmeter_cb(Fl_Widget *wid, void *data)
@@ -658,6 +648,8 @@ UI::UI(int x, int y, int ui_w, int ui_h, const char* label, const UI *cur_ui) :
{
PointerOnLink = FALSE;
+ LocBar = NavBar = StatusBar = NULL;
+
Tabs = NULL;
TabTooltip = NULL;
TopGroup = this;
@@ -797,7 +789,7 @@ int UI::handle(int event)
a_UIcmd_save(a_UIcmd_get_bw_by_widget(this));
ret = 1;
} else if (cmd == KEYS_FULLSCREEN) {
- //panelmode_cb_i();
+ fullscreen_toggle();
ret = 1;
} else if (cmd == KEYS_FILE_MENU) {
a_UIcmd_file_popup(a_UIcmd_get_bw_by_widget(this), FileButton);
@@ -1127,5 +1119,37 @@ void UI::findbar_toggle(bool add)
FindBarSpace = 0;
redraw(); /* Main->redraw(); is not enough */
}
+}
+
+/*
+ * Make panels disappear growing the render area.
+ * WORKAROUND: here we avoid hidden widgets resize by setting their
+ * size to (0,0) while hidden.
+ * (Already reported to FLTK team)
+ */
+void UI::fullscreen_toggle()
+{
+ int dh = 0;
+ int hide = StatusBar->visible();
+
+ // hide/show panels
+ init_sizes();
+ if (LocBar) {
+ dh += lh;
+ hide ? LocBar->size(0,0) : LocBar->size(w(),lh);
+ hide ? LocBar->hide() : LocBar->show();
+ }
+ if (NavBar) {
+ dh += nh;
+ hide ? NavBar->size(0,0) : NavBar->size(w(),nh);
+ hide ? NavBar->hide() : NavBar->show();
+ }
+ if (StatusBar) {
+ dh += sh;
+ hide ? StatusBar->size(0,0) : StatusBar->size(w(),sh);;
+ hide ? StatusBar->hide() : StatusBar->show();;
+ }
+ Main->size(Main->w(), Main->h() + (hide ? dh : -dh));
+ redraw();
}
diff --git a/src/ui.hh b/src/ui.hh
index c74b2056..9308cdd0 100644
--- a/src/ui.hh
+++ b/src/ui.hh
@@ -169,8 +169,7 @@ public:
void set_panelmode(UIPanelmode mode);
UIPanelmode get_panelmode();
void findbar_toggle(bool add);
- Fl_Widget *fullscreen_button() { return FullScreen; }
- void fullscreen_toggle() { FullScreen->do_callback(); }
+ void fullscreen_toggle();
CustTabs *tabs() { return Tabs; }
void tabs(CustTabs *tabs) { Tabs = tabs; }