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)
|
||||
Changes for 0.9.16:
|
||||
*06/04/22:
|
||||
* Fix crash when toolbar disabled (Simon)
|
||||
Slit.hh/cc Screen.cc
|
||||
* Couple of memory-based fixes from valgrind (Simon)
|
||||
Keys.cc Screen.cc MenuCreator.cc
|
||||
* Applied #1467926 and #1458069, minor other changes (Mathias)
|
||||
|
|
|
@ -1687,13 +1687,6 @@ void BScreen::setupConfigmenu(FbTk::Menu &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_end = m_configmenu_list.end();
|
||||
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(),
|
||||
scr.imageControl(),
|
||||
*scr.layerManager().getLayer(Layer::MENU)),
|
||||
m_placement_menu(scr.menuTheme(),
|
||||
scr.imageControl(),
|
||||
*scr.layerManager().getLayer(Layer::MENU)),
|
||||
m_clientlist_menu(scr.menuTheme(),
|
||||
scr.imageControl(),
|
||||
*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
|
||||
|
||||
m_layeritem(0),
|
||||
|
||||
m_slit_theme(new SlitTheme(scr.rootWindow().screenNumber())),
|
||||
m_strut(0),
|
||||
// resources
|
||||
|
@ -301,6 +299,8 @@ Slit::Slit(BScreen &scr, FbTk::XLayer &layer, const char *filename)
|
|||
scr.resizeSig().attach(this);
|
||||
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;
|
||||
// move the frame out of sight for a moment
|
||||
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_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
|
||||
m_slitmenu.setLabel(_FBTEXT(Slit, Slit, "Slit", "The Slit"));
|
||||
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());
|
||||
|
||||
|
@ -1287,10 +1294,11 @@ void Slit::setupMenu() {
|
|||
m_slitmenu.updateMenu();
|
||||
|
||||
// setup sub menu
|
||||
m_placement_menu.setLabel(_FBTEXT(Slit, Placement, "Slit Placement", "Slit Placement"));
|
||||
m_placement_menu.setMinimumSublevels(3);
|
||||
placement_menu->setLabel(_FBTEXT(Slit, Placement, "Slit Placement", "Slit Placement"));
|
||||
placement_menu->setMinimumSublevels(3);
|
||||
m_layermenu->setInternalMenu();
|
||||
m_clientlist_menu.setInternalMenu();
|
||||
m_slitmenu.setInternalMenu();
|
||||
|
||||
typedef pair<const char *, Slit::Placement> PlacementP;
|
||||
typedef list<PlacementP> Placements;
|
||||
|
@ -1314,10 +1322,10 @@ void Slit::setupMenu() {
|
|||
Slit::Placement placement = place_menu.front().second;
|
||||
|
||||
if (str == 0) {
|
||||
m_placement_menu.insert("");
|
||||
m_placement_menu.setItemEnabled(i, false);
|
||||
placement_menu->insert("");
|
||||
placement_menu->setItemEnabled(i, false);
|
||||
} else {
|
||||
m_placement_menu.insert(new PlaceSlitMenuItem(str, *this,
|
||||
placement_menu->insert(new PlaceSlitMenuItem(str, *this,
|
||||
placement,
|
||||
save_and_reconfigure));
|
||||
|
||||
|
@ -1326,7 +1334,7 @@ void Slit::setupMenu() {
|
|||
}
|
||||
|
||||
// finaly update sub menu
|
||||
m_placement_menu.updateMenu();
|
||||
placement_menu->updateMenu();
|
||||
}
|
||||
|
||||
void Slit::moveToLayer(int layernum) {
|
||||
|
|
|
@ -147,7 +147,7 @@ private:
|
|||
FbTk::Timer m_timer;
|
||||
|
||||
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::string m_filename;
|
||||
|
||||
|
|
Loading…
Reference in a new issue