fix crash when toolbar disabled
This commit is contained in:
parent
932eebe0dd
commit
1119068227
4 changed files with 21 additions and 18 deletions
|
@ -1,6 +1,8 @@
|
||||||
(Format: Year/Month/Day)
|
(Format: Year/Month/Day)
|
||||||
Changes for 0.9.16:
|
Changes for 0.9.16:
|
||||||
*06/04/22:
|
*06/04/22:
|
||||||
|
* Fix crash when toolbar disabled (Simon)
|
||||||
|
Slit.hh/cc Screen.cc
|
||||||
* Couple of memory-based fixes from valgrind (Simon)
|
* Couple of memory-based fixes from valgrind (Simon)
|
||||||
Keys.cc Screen.cc MenuCreator.cc
|
Keys.cc Screen.cc MenuCreator.cc
|
||||||
* Applied #1467926 and #1458069, minor other changes (Mathias)
|
* Applied #1467926 and #1458069, minor other changes (Mathias)
|
||||||
|
|
|
@ -1687,13 +1687,6 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) {
|
||||||
|
|
||||||
menu.insert(tabmenu_label, tab_menu);
|
menu.insert(tabmenu_label, tab_menu);
|
||||||
|
|
||||||
#ifdef SLIT
|
|
||||||
if (slit() != 0) {
|
|
||||||
slit()->menu().setInternalMenu();
|
|
||||||
menu.insert("Slit", &slit()->menu());
|
|
||||||
}
|
|
||||||
#endif // SLIT
|
|
||||||
|
|
||||||
Configmenus::iterator it = m_configmenu_list.begin();
|
Configmenus::iterator it = m_configmenu_list.begin();
|
||||||
Configmenus::iterator it_end = m_configmenu_list.end();
|
Configmenus::iterator it_end = m_configmenu_list.end();
|
||||||
for (; it != it_end; ++it)
|
for (; it != it_end; ++it)
|
||||||
|
|
28
src/Slit.cc
28
src/Slit.cc
|
@ -260,9 +260,6 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
|
||||||
m_slitmenu(scr.menuTheme(),
|
m_slitmenu(scr.menuTheme(),
|
||||||
scr.imageControl(),
|
scr.imageControl(),
|
||||||
*scr.layerManager().getLayer(Layer::MENU)),
|
*scr.layerManager().getLayer(Layer::MENU)),
|
||||||
m_placement_menu(scr.menuTheme(),
|
|
||||||
scr.imageControl(),
|
|
||||||
*scr.layerManager().getLayer(Layer::MENU)),
|
|
||||||
m_clientlist_menu(scr.menuTheme(),
|
m_clientlist_menu(scr.menuTheme(),
|
||||||
scr.imageControl(),
|
scr.imageControl(),
|
||||||
*scr.layerManager().getLayer(Layer::MENU)),
|
*scr.layerManager().getLayer(Layer::MENU)),
|
||||||
|
@ -274,6 +271,7 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
|
||||||
"_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False)), //KDE v2.x
|
"_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False)), //KDE v2.x
|
||||||
|
|
||||||
m_layeritem(0),
|
m_layeritem(0),
|
||||||
|
|
||||||
m_slit_theme(new SlitTheme(scr.rootWindow().screenNumber())),
|
m_slit_theme(new SlitTheme(scr.rootWindow().screenNumber())),
|
||||||
m_strut(0),
|
m_strut(0),
|
||||||
// resources
|
// resources
|
||||||
|
@ -301,6 +299,8 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
|
||||||
scr.resizeSig().attach(this);
|
scr.resizeSig().attach(this);
|
||||||
scr.reconfigureSig().attach(this); // if alpha changed (we disablethis signal when we get theme change sig)
|
scr.reconfigureSig().attach(this); // if alpha changed (we disablethis signal when we get theme change sig)
|
||||||
|
|
||||||
|
scr.addConfigMenu(_FBTEXT(Slit, Slit, "Slit", "The Slit"), m_slitmenu);
|
||||||
|
|
||||||
frame.pixmap = None;
|
frame.pixmap = None;
|
||||||
// move the frame out of sight for a moment
|
// move the frame out of sight for a moment
|
||||||
frame.window.move(-frame.window.width(), -frame.window.height());
|
frame.window.move(-frame.window.width(), -frame.window.height());
|
||||||
|
@ -1236,10 +1236,17 @@ void Slit::setupMenu() {
|
||||||
FbTk::RefCount<FbTk::Command> save_and_reconfigure(s_a_reconf_macro);
|
FbTk::RefCount<FbTk::Command> save_and_reconfigure(s_a_reconf_macro);
|
||||||
FbTk::RefCount<FbTk::Command> save_and_reconfigure_slit(s_a_reconf_slit_macro);
|
FbTk::RefCount<FbTk::Command> save_and_reconfigure_slit(s_a_reconf_slit_macro);
|
||||||
|
|
||||||
|
|
||||||
|
// it'll be freed by the slitmenu (since not marked internal)
|
||||||
|
FbMenu *placement_menu = new FbMenu(m_screen.menuTheme(),
|
||||||
|
m_screen.imageControl(),
|
||||||
|
*m_screen.layerManager().getLayer(::Layer::MENU));
|
||||||
|
|
||||||
|
|
||||||
// setup base menu
|
// setup base menu
|
||||||
m_slitmenu.setLabel(_FBTEXT(Slit, Slit, "Slit", "The Slit"));
|
m_slitmenu.setLabel(_FBTEXT(Slit, Slit, "Slit", "The Slit"));
|
||||||
m_slitmenu.insert(_FBTEXT(Menu, Placement, "Placement", "Title of Placement menu"),
|
m_slitmenu.insert(_FBTEXT(Menu, Placement, "Placement", "Title of Placement menu"),
|
||||||
&m_placement_menu);
|
placement_menu);
|
||||||
|
|
||||||
m_slitmenu.insert(_FBTEXT(Menu, Layer, "Layer...", "Title of Layer menu"), m_layermenu.get());
|
m_slitmenu.insert(_FBTEXT(Menu, Layer, "Layer...", "Title of Layer menu"), m_layermenu.get());
|
||||||
|
|
||||||
|
@ -1287,10 +1294,11 @@ void Slit::setupMenu() {
|
||||||
m_slitmenu.updateMenu();
|
m_slitmenu.updateMenu();
|
||||||
|
|
||||||
// setup sub menu
|
// setup sub menu
|
||||||
m_placement_menu.setLabel(_FBTEXT(Slit, Placement, "Slit Placement", "Slit Placement"));
|
placement_menu->setLabel(_FBTEXT(Slit, Placement, "Slit Placement", "Slit Placement"));
|
||||||
m_placement_menu.setMinimumSublevels(3);
|
placement_menu->setMinimumSublevels(3);
|
||||||
m_layermenu->setInternalMenu();
|
m_layermenu->setInternalMenu();
|
||||||
m_clientlist_menu.setInternalMenu();
|
m_clientlist_menu.setInternalMenu();
|
||||||
|
m_slitmenu.setInternalMenu();
|
||||||
|
|
||||||
typedef pair<const char *, Slit::Placement> PlacementP;
|
typedef pair<const char *, Slit::Placement> PlacementP;
|
||||||
typedef list<PlacementP> Placements;
|
typedef list<PlacementP> Placements;
|
||||||
|
@ -1314,10 +1322,10 @@ void Slit::setupMenu() {
|
||||||
Slit::Placement placement = place_menu.front().second;
|
Slit::Placement placement = place_menu.front().second;
|
||||||
|
|
||||||
if (str == 0) {
|
if (str == 0) {
|
||||||
m_placement_menu.insert("");
|
placement_menu->insert("");
|
||||||
m_placement_menu.setItemEnabled(i, false);
|
placement_menu->setItemEnabled(i, false);
|
||||||
} else {
|
} else {
|
||||||
m_placement_menu.insert(new PlaceSlitMenuItem(str, *this,
|
placement_menu->insert(new PlaceSlitMenuItem(str, *this,
|
||||||
placement,
|
placement,
|
||||||
save_and_reconfigure));
|
save_and_reconfigure));
|
||||||
|
|
||||||
|
@ -1326,7 +1334,7 @@ void Slit::setupMenu() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// finaly update sub menu
|
// finaly update sub menu
|
||||||
m_placement_menu.updateMenu();
|
placement_menu->updateMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Slit::moveToLayer(int layernum) {
|
void Slit::moveToLayer(int layernum) {
|
||||||
|
|
|
@ -147,7 +147,7 @@ private:
|
||||||
FbTk::Timer m_timer;
|
FbTk::Timer m_timer;
|
||||||
|
|
||||||
SlitClients m_client_list;
|
SlitClients m_client_list;
|
||||||
FbMenu m_slitmenu, m_placement_menu, m_clientlist_menu;
|
FbMenu m_slitmenu, m_clientlist_menu;
|
||||||
std::auto_ptr<LayerMenu> m_layermenu;
|
std::auto_ptr<LayerMenu> m_layermenu;
|
||||||
std::string m_filename;
|
std::string m_filename;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue