Exemplo n.º 1
0
/**
 * Triggered when window has moved or resized (handled internally by an event)
 *
 * @param *window - reference to the window object
 * @param *event - event object returned by GDK layer
 * @param parent - the owner of this callback
 *
 * @return always false
 */
bool AppWindow::eventWindowProperty(GtkWindow *window, GdkEventConfigure* event, AppWindow& parent) {
	if (parent.posEventFirstPass) {
		// Get original coords
		Geometry geom = parent.getConfig()->getWindowGeom();
		// Correct the position on first pass
		gtk_window_move(window, geom.getLeft(), geom.getTop());
		parent.posEventFirstPass = false;
	}
	// Retrieve the new window size
	ConfigContainer *config = parent.getConfig();
	Geometry geom(event->x, event->y, event->width, event->height);
	config->setWindowGeom(geom);
	// Always return false, otherwise the event may not trigger properly (GTK will cancel, but Xorg will honour it)
	return false;
}
Exemplo n.º 2
0
/**
 * Triggered when a window has been destroyed (handled internally by an event)
 *
 * @param *window - reference to the window object
 * @param parent - the owner of this callback
 */
void AppWindow::eventDestroy(GtkWindow *window, AppWindow& parent) {
	// Save window geometry to user session on exit
	ConfigContainer *config = parent.getConfig();
	ConfigWriter writer;
	writer.loadFile(config->getSaveToConfig());
	writer.saveWindowGeometry(config);
	gtk_main_quit();
}