give WindowProxy its own map/unmap signals so that other things can track map/unmap without accessing the Window
This commit is contained in:
parent
d42f075408
commit
8d17465016
@ -81,6 +81,9 @@ class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public vi
|
|||||||
|
|
||||||
static std::string xml_node_name();
|
static std::string xml_node_name();
|
||||||
|
|
||||||
|
sigc::signal0<void> signal_map;
|
||||||
|
sigc::signal0<void> signal_unmap;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::string _name;
|
std::string _name;
|
||||||
std::string _menu_name;
|
std::string _menu_name;
|
||||||
@ -95,6 +98,8 @@ class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public vi
|
|||||||
StateMask _state_mask;
|
StateMask _state_mask;
|
||||||
sigc::connection delete_connection;
|
sigc::connection delete_connection;
|
||||||
sigc::connection configure_connection;
|
sigc::connection configure_connection;
|
||||||
|
sigc::connection map_connection;
|
||||||
|
sigc::connection unmap_connection;
|
||||||
|
|
||||||
|
|
||||||
void save_pos_and_size ();
|
void save_pos_and_size ();
|
||||||
@ -103,7 +108,8 @@ class LIBGTKMM2EXT_API WindowProxy : public PBD::StatefulDestructible, public vi
|
|||||||
|
|
||||||
virtual bool delete_event_handler (GdkEventAny *ev);
|
virtual bool delete_event_handler (GdkEventAny *ev);
|
||||||
virtual bool configure_handler (GdkEventConfigure*);
|
virtual bool configure_handler (GdkEventConfigure*);
|
||||||
|
void map_handler ();
|
||||||
|
void unmap_handler ();
|
||||||
virtual void setup ();
|
virtual void setup ();
|
||||||
void toggle ();
|
void toggle ();
|
||||||
};
|
};
|
||||||
|
@ -230,6 +230,8 @@ WindowProxy::drop_window ()
|
|||||||
if (_window) {
|
if (_window) {
|
||||||
delete_connection.disconnect ();
|
delete_connection.disconnect ();
|
||||||
configure_connection.disconnect ();
|
configure_connection.disconnect ();
|
||||||
|
map_connection.disconnect ();
|
||||||
|
unmap_connection.disconnect ();
|
||||||
_window->hide ();
|
_window->hide ();
|
||||||
delete _window;
|
delete _window;
|
||||||
_window = 0;
|
_window = 0;
|
||||||
@ -255,10 +257,26 @@ WindowProxy::setup ()
|
|||||||
|
|
||||||
delete_connection = _window->signal_delete_event().connect (sigc::mem_fun (*this, &WindowProxy::delete_event_handler));
|
delete_connection = _window->signal_delete_event().connect (sigc::mem_fun (*this, &WindowProxy::delete_event_handler));
|
||||||
configure_connection = _window->signal_configure_event().connect (sigc::mem_fun (*this, &WindowProxy::configure_handler), false);
|
configure_connection = _window->signal_configure_event().connect (sigc::mem_fun (*this, &WindowProxy::configure_handler), false);
|
||||||
|
map_connection = _window->signal_map().connect (sigc::mem_fun (*this, &WindowProxy::map_handler), false);
|
||||||
|
unmap_connection = _window->signal_unmap().connect (sigc::mem_fun (*this, &WindowProxy::unmap_handler), false);
|
||||||
|
|
||||||
set_pos_and_size ();
|
set_pos_and_size ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
WindowProxy::map_handler ()
|
||||||
|
{
|
||||||
|
/* emit our own signal */
|
||||||
|
signal_map ();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
WindowProxy::unmap_handler ()
|
||||||
|
{
|
||||||
|
/* emit out own signal */
|
||||||
|
signal_unmap ();
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
WindowProxy::configure_handler (GdkEventConfigure* ev)
|
WindowProxy::configure_handler (GdkEventConfigure* ev)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user