Commit Graph

13 Commits

Author SHA1 Message Date
a88c0ffb93 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:47:19 +02:00
843866e7e7 app: make things behave more reasonable with multiple monitors
There is now a preference option that determines whether windows
should be opened on the same monitor as before. It should be disabled
when the machine gets monitors plugged/unplugged dynamically ("laptop")
and enabled when there is a static multi-monitor setup ("wokstation").
This is merely the current simplistic policy on top of the newly added
underlying infrastructure:

- pass integer monitor numbers around in all places where we already
  pass around a GdkScreen. Pass the "current" monitor to these changed
  APIs, where "current" is either the monitor where the action-triggering
  widget is, or if that is unavailable the monitor where the mouse is.

- add gimp_widget_get_monitor() in order to easily get to the monitor,
  just like gtk_widget_get_screen().

- add screen and monitor parameters in some places that were missed
  before.

- in sessionrc, save all window positions relative to the window's
  monitor, and save the monitor separately, if it's not the screen's
  primary monitor.

- when restoring window positions, use the stored monitor when the new
  prefs options says so (use the screen's primary monitor if there is
  no stored monitor), otherwise use current monitor that is now passed
  around.
2014-05-02 03:01:23 +02:00
bed298be13 app: Remember column width in multi-column dock windows 2011-05-31 23:15:39 +02:00
2d5ffd4f2e app: Add the concept of 'side' of a dock
Add GimpDockContainer::get_dock_side() and write that info in the
sessionrc file. In single-window mode, a dock can be either on the
left or right side of the image window. In a dock window however, the
side concept doesn't apply ('side' has nothing to do with what column
a dock is in in a GimpDockColumns)
2011-05-19 20:57:40 +02:00
cf4a4bf5a6 app: Make gimp_session_info_dock_restore() take a GimpDockContainer 2011-05-13 21:25:39 +02:00
896e29c5f1 app: gimp_session_info_dock_restore(): remove empty dockbooks after restoring
so we don't end up with empty windows if restoring all dockables in
the dock failed.
2011-05-12 21:23:07 +02:00
f75f61779c app: GimpSessionInfoDock::identifier -> dock_type
Rename GimpSessionInfoDock::identifier to dock_type, because it isn't
really an identifier; there might be several instance with dock_type
being "gimp-dock". This is a preparation for adding an actual
'identifier' member.
2011-04-21 18:59:12 +02:00
1093462ae9 app: Merge 'global_toolbox_factory' into 'global_dock_factory'
Get rid of 'global_toolbox_factory' and manage everything dock-related
with 'global_dock_factory'. The whole of 'global_toolbox_factory' was
a big special-case and getting rid of it makes it easier to extend the
session management with e.g. single-window mode dock functionality.

To get rid of 'global_toolbox_factory' we, roughly, have to
 * Replace 'global_toolbox_factory' with 'global_dock_factory'
   everywhere. We can also get rid of lots of code that did special
   things for the "toolbox" factory.
 * Make the use or interaction with the toolbox explicit in some
   places. For example, a function gimp_dock_window_has_toolbox() has
   been introduced.
 * Make GimpSessionInfoDock have an 'identifier' parameter so we can
   differentiate between the "gimp-dock" and "gimp-toolbox" dock
   types.
2010-01-20 18:29:54 +01:00
34ad9dad1a app: Session manage multi-column dock windows
Introduce GimpSessionInfoDock and session manage multi-column dock
windows. We are still backwards compatible with sessionrc, the only
difference is that a "session-info" entry now can have multiple "dock"
entries.

Also make ond dock window multi-column in the regression test
app/tests/test-session-management.c and adjust positions and image
selection menus a bit.
2009-12-06 14:49:53 +01:00
3bb15eac78 app: Move out dock window logic from gimp_session_info_dock_restore()
Move out dock window logic, most notably aux info, from
gimp_session_info_dock_restore() and put it in
gimp_session_info_restore() where it belongs.
2009-12-05 22:43:32 +01:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
5766498fff Made session info serialization independent from widgets so it can be used
2008-05-14  Michael Natterer  <mitch@gimp.org>

	Made session info serialization independent from widgets so it can
	be used on stored dock layouts which are not open:

	* app/widgets/gimpsessioninfo-book.[ch]
	* app/widgets/gimpsessioninfo-dock.[ch]
	* app/widgets/gimpsessioninfo-dockable.[ch]: add from_widget()
	functions which return newly allocated session info structs.
	Changed serialize() functions to take these structs instead of
	widgets. Changed deserialize() functions to return the structs
	instead of appending them to lists in their parent structs. Don't
	free anything in restore().

	* app/widgets/gimpsessioninfo-aux.[ch]
	(gimp_session_info_aux_serialize): take a GList of aux_info
	instead of a widget.

	* app/widgets/gimpsessioninfo.[ch]: add new functions get_info()
	which collects above session info details from dialogs and
	clear_info() which clears that info. Call clear_info() from
	finalize(). Don't free anything in restore().

	* app/widgets/gimpdialogfactory.c
	(gimp_dialog_factories_save_foreach): collect the session info
	detials from the dialogs before serializing because serialize()
	doesn't know about the widget any longer. Clear the infos after
	serializing.

	(gimp_dialog_factories_restore_foreach): clear the session info
	details after creating the dialogs because restore() doesn't clear
	the info by itself any longer.


svn path=/trunk/; revision=25657
2008-05-13 23:43:57 +00:00
1a5cfac5e6 app/widgets/gimpsessioninfoaux.[ch] app/widgets/gimpsessioninfobook.[ch]
2007-05-25  Michael Natterer  <mitch@gimp.org>

	* app/widgets/gimpsessioninfoaux.[ch]
	* app/widgets/gimpsessioninfobook.[ch]
	* app/widgets/gimpsessioninfodock.[ch]
	* app/widgets/gimpsessioninfodockable.[ch]: renamed these...

	* app/widgets/gimpsessioninfo-aux.[ch]
	* app/widgets/gimpsessioninfo-book.[ch]
	* app/widgets/gimpsessioninfo-dock.[ch]
	* app/widgets/gimpsessioninfo-dockable.[ch]: ...to these.

	* app/widgets/Makefile.am
	* app/widgets/gimpcoloreditor.c
	* app/widgets/gimpcursorview.c
	* app/widgets/gimpdataeditor.c
	* app/widgets/gimpdocked.c
	* app/widgets/gimphistogrameditor.c
	* app/widgets/gimpmenudock.c
	* app/widgets/gimppaletteeditor.c
	* app/widgets/gimpsessioninfo.c: changed accordingly.


svn path=/trunk/; revision=22614
2007-05-25 11:42:28 +00:00