Hello community,

here is the log from the commit of package mate-terminal for openSUSE:Factory 
checked in at 2014-10-05 20:31:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mate-terminal (Old)
 and      /work/SRC/openSUSE:Factory/.mate-terminal.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mate-terminal"

Changes:
--------
--- /work/SRC/openSUSE:Factory/mate-terminal/mate-terminal.changes      
2014-03-22 18:01:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.mate-terminal.new/mate-terminal.changes 
2014-10-05 20:33:15.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Oct  3 14:17:04 UTC 2014 - [email protected]
+
+- Update to version 1.8.1
+  + Fixed opening new terminal in a tab
+  + Added colon to PATHCHARS_CLASS for URL detection
+
+-------------------------------------------------------------------

Old:
----
  mate-terminal-1.8.0.tar.xz

New:
----
  mate-terminal-1.8.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mate-terminal.spec ++++++
--- /var/tmp/diff_new_pack.bQ8IZt/_old  2014-10-05 20:33:16.000000000 +0200
+++ /var/tmp/diff_new_pack.bQ8IZt/_new  2014-10-05 20:33:16.000000000 +0200
@@ -15,7 +15,7 @@
 
 
 Name:           mate-terminal
-Version:        1.8.0
+Version:        1.8.1
 Release:        0
 License:        GPL-3.0+
 Summary:        MATE Desktop system tools

++++++ mate-terminal-1.8.0.tar.xz -> mate-terminal-1.8.1.tar.xz ++++++
++++ 1957 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/ChangeLog new/mate-terminal-1.8.1/ChangeLog
--- old/mate-terminal-1.8.0/ChangeLog   2014-03-01 14:50:42.000000000 +0100
+++ new/mate-terminal-1.8.1/ChangeLog   2014-09-28 21:52:09.000000000 +0200
@@ -1,5 +1,48 @@
 # Generated by Makefile. Do not edit.
 
+commit da375f9474b5cae0e6b8724a3f5976050118e237
+Author: infirit <[email protected]>
+Date:   Sun Sep 28 21:50:54 2014 +0200
+
+    Bump version to 1.8.1
+
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit cad2fcd7b988b25b0103d9023f3d8779336d35e1
+Author: infirit <[email protected]>
+Date:   Sun Sep 28 21:50:41 2014 +0200
+
+    Update NEWS for 1.8.1
+
+ NEWS | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+commit dd5636bc091e9abc3b916d86be95b8e8ef452876
+Author: Martin Wimpress <[email protected]>
+Date:   Mon Feb 24 14:44:24 2014 +0000
+
+    Opening new terminal in a tab now works. The new intended behaviour is 
desbribed
+    in https://bugzilla.gnome.org/show_bug.cgi?id=83203#c57 Fixes #45.
+
+ src/terminal-app.c     | 95 ++++++++++++++++++++++++++++++++++++++++----------
+ src/terminal-app.h     |  4 ++-
+ src/terminal-options.c | 12 +++++--
+ src/terminal-options.h |  2 ++
+ src/terminal-window.c  | 45 ++++++++++++++++++++++++
+ src/terminal-window.h  |  3 ++
+ src/terminal.c         | 46 ++++++++++++++++++++----
+ 7 files changed, 178 insertions(+), 29 deletions(-)
+
+commit 31fb0be28e7764fad7b7cb99d84fe8e015a8408c
+Author: infirit <[email protected]>
+Date:   Mon Aug 18 18:30:48 2014 +0200
+
+    Add colon to PATHCHARS_CLASS for url detection.
+
+ src/terminal-screen.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 commit f6d1706007760cf7c7ad509dc6f5321a0a9c0583
 Author: Stefano Karapetsas <[email protected]>
 Date:   Sat Mar 1 14:49:57 2014 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/NEWS new/mate-terminal-1.8.1/NEWS
--- old/mate-terminal-1.8.0/NEWS        2014-03-01 14:49:51.000000000 +0100
+++ new/mate-terminal-1.8.1/NEWS        2014-09-28 21:50:34.000000000 +0200
@@ -1,3 +1,8 @@
+1.8.1
+
+  * Opening new terminal in a tab now works.
+  * Add colon to PATHCHARS_CLASS for url detection.
+
 1.8.0
 
   * Add GTK3 support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/configure.ac new/mate-terminal-1.8.1/configure.ac
--- old/mate-terminal-1.8.0/configure.ac        2014-03-01 14:49:48.000000000 
+0100
+++ new/mate-terminal-1.8.1/configure.ac        2014-09-28 21:50:50.000000000 
+0200
@@ -1,6 +1,6 @@
 m4_define([gt_version_major],[1])
 m4_define([gt_version_minor],[8])
-m4_define([gt_version_micro],[0])
+m4_define([gt_version_micro],[1])
 m4_define([gt_version_extra],[])
 
m4_define([gt_version],[gt_version_major().gt_version_minor().gt_version_micro()gt_version_extra])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/m4/intltool.m4 new/mate-terminal-1.8.1/m4/intltool.m4
--- old/mate-terminal-1.8.0/m4/intltool.m4      2014-03-01 14:50:00.000000000 
+0100
+++ new/mate-terminal-1.8.1/m4/intltool.m4      2014-09-28 21:50:58.000000000 
+0200
@@ -155,31 +155,6 @@
 # Substitute ALL_LINGUAS so we can use it in po/Makefile
 AC_SUBST(ALL_LINGUAS)
 
-# Set DATADIRNAME correctly if it is not set yet
-# (copied from glib-gettext.m4)
-if test -z "$DATADIRNAME"; then
-  AC_LINK_IFELSE(
-    [AC_LANG_PROGRAM([[]],
-                     [[extern int _nl_msg_cat_cntr;
-                       return _nl_msg_cat_cntr]])],
-    [DATADIRNAME=share],
-    [case $host in
-    *-*-solaris*)
-    dnl On Solaris, if bind_textdomain_codeset is in libc,
-    dnl GNU format message catalog is always supported,
-    dnl since both are added to the libc all together.
-    dnl Hence, we'd like to go with DATADIRNAME=share
-    dnl in this case.
-    AC_CHECK_FUNC(bind_textdomain_codeset,
-      [DATADIRNAME=share], [DATADIRNAME=lib])
-    ;;
-    *)
-    [DATADIRNAME=lib]
-    ;;
-    esac])
-fi
-AC_SUBST(DATADIRNAME)
-
 IT_PO_SUBDIR([po])
 
 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/m4/libtool.m4 new/mate-terminal-1.8.1/m4/libtool.m4
--- old/mate-terminal-1.8.0/m4/libtool.m4       2014-03-01 14:50:04.000000000 
+0100
+++ new/mate-terminal-1.8.1/m4/libtool.m4       2014-09-28 21:51:02.000000000 
+0200
@@ -1312,7 +1312,7 @@
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1324,19 +1324,9 @@
            LD="${LD-ld} -m elf_i386_fbsd"
            ;;
          x86_64-*linux*)
-           case `/usr/bin/file conftest.o` in
-             *x86-64*)
-               LD="${LD-ld} -m elf32_x86_64"
-               ;;
-             *)
-               LD="${LD-ld} -m elf_i386"
-               ;;
-           esac
-           ;;
-         powerpc64le-*)
-           LD="${LD-ld} -m elf32lppclinux"
+           LD="${LD-ld} -m elf_i386"
            ;;
-         powerpc64-*)
+         ppc64-*linux*|powerpc64-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1355,10 +1345,7 @@
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         powerpcle-*)
-           LD="${LD-ld} -m elf64lppc"
-           ;;
-         powerpc-*)
+         ppc*-*linux*|powerpc*-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -1701,8 +1688,7 @@
     ;;
   *)
     lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len" && \
-       test undefined != "$lt_cv_sys_max_cmd_len"; then
+    if test -n "$lt_cv_sys_max_cmd_len"; then
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
       lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
     else
@@ -2493,7 +2479,14 @@
     *) objformat=elf ;;
     esac
   fi
-  version_type=freebsd-$objformat
+  # Handle Gentoo/FreeBSD as it was Linux
+  case $host_vendor in
+    gentoo)
+      version_type=linux ;;
+    *)
+      version_type=freebsd-$objformat ;;
+  esac
+
   case $version_type in
     freebsd-elf*)
       library_names_spec='${libname}${release}${shared_ext}$versuffix 
${libname}${release}${shared_ext} $libname${shared_ext}'
@@ -2504,6 +2497,12 @@
       library_names_spec='${libname}${release}${shared_ext}$versuffix 
$libname${shared_ext}$versuffix'
       need_version=yes
       ;;
+    linux)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix 
${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+      soname_spec='${libname}${release}${shared_ext}$major'
+      need_lib_prefix=no
+      need_version=no
+      ;;
   esac
   shlibpath_var=LD_LIBRARY_PATH
   case $host_os in
@@ -2526,6 +2525,17 @@
   esac
   ;;
 
+gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix 
${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 haiku*)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
@@ -2642,7 +2652,7 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   version_type=linux # correct to gnu/linux during the next big refactor
   need_lib_prefix=no
   need_version=no
@@ -2687,18 +2697,6 @@
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix 
${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -3258,6 +3256,10 @@
   fi
   ;;
 
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
 haiku*)
   lt_cv_deplibs_check_method=pass_all
   ;;
@@ -3296,11 +3298,11 @@
   ;;
 
 # This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd* | netbsdelf*-gnu)
+netbsd*)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern 
/lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -4048,7 +4050,7 @@
            ;;
        esac
        ;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
        case $cc_basename in
          KCC*)
            # KAI C++ Compiler
@@ -4112,7 +4114,7 @@
            ;;
        esac
        ;;
-      netbsd* | netbsdelf*-gnu)
+      netbsd*)
        ;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4347,7 +4349,7 @@
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
       case $cc_basename in
       # old Intel for x86_64 which still supported -KPIC.
       ecc*)
@@ -4589,9 +4591,6 @@
       ;;
     esac
     ;;
-  linux* | k*bsd*-gnu | gnu*)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | 
$global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
     ;;
@@ -4654,9 +4653,6 @@
   openbsd*)
     with_gnu_ld=no
     ;;
-  linux* | k*bsd*-gnu | gnu*)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4878,7 +4874,7 @@
       fi
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs 
$linker_flags -o $lib'
        wlarc=
@@ -5055,7 +5051,6 @@
        if test "$aix_use_runtimelinking" = yes; then
          shared_flag="$shared_flag "'${wl}-G'
        fi
-       _LT_TAGVAR(link_all_deplibs, $1)=no
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -5360,7 +5355,7 @@
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd* | netbsdelf*-gnu)
+    netbsd*)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs 
$linker_flags'  # a.out
       else
@@ -6240,6 +6235,9 @@
         _LT_TAGVAR(ld_shlibs, $1)=yes
         ;;
 
+      gnu*)
+        ;;
+
       haiku*)
         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs 
$compiler_flags ${wl}-soname $wl$soname -o $lib'
         _LT_TAGVAR(link_all_deplibs, $1)=yes
@@ -6401,7 +6399,7 @@
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
-      linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
         case $cc_basename in
           KCC*)
            # Kuck and Associates, Inc. (KAI) C++ Compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/po/Makefile.in.in 
new/mate-terminal-1.8.1/po/Makefile.in.in
--- old/mate-terminal-1.8.0/po/Makefile.in.in   2014-03-01 14:50:00.000000000 
+0100
+++ new/mate-terminal-1.8.1/po/Makefile.in.in   2014-09-28 21:50:58.000000000 
+0200
@@ -33,8 +33,7 @@
 datadir = @datadir@
 datarootdir = @datarootdir@
 libdir = @libdir@
-DATADIRNAME = @DATADIRNAME@
-itlocaledir = $(prefix)/$(DATADIRNAME)/locale
+localedir = @localedir@
 subdir = po
 install_sh = @install_sh@
 # Automake >= 1.8 provides @mkdir_p@.
@@ -108,7 +107,7 @@
 install-data-yes: all
        linguas="$(USE_LINGUAS)"; \
        for lang in $$linguas; do \
-         dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
+         dir=$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES; \
          $(mkdir_p) $$dir; \
          if test -r $$lang.gmo; then \
            $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
@@ -142,8 +141,8 @@
 uninstall:
        linguas="$(USE_LINGUAS)"; \
        for lang in $$linguas; do \
-         rm -f 
$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
-         rm -f 
$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
+         rm -f 
$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
+         rm -f 
$(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
        done
 
 check: all $(GETTEXT_PACKAGE).pot
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-app.c 
new/mate-terminal-1.8.1/src/terminal-app.c
--- old/mate-terminal-1.8.0/src/terminal-app.c  2014-02-23 19:17:25.000000000 
+0100
+++ new/mate-terminal-1.8.1/src/terminal-app.c  2014-09-28 21:49:38.000000000 
+0200
@@ -219,6 +219,29 @@
        return screen;
 }
 
+static int
+terminal_app_get_workspace_for_window (TerminalWindow *window)
+{
+  int ret = -1;
+  guchar *data = NULL;
+  GdkAtom atom;
+  GdkAtom cardinal_atom;
+
+  atom = gdk_atom_intern_static_string ("_NET_WM_DESKTOP");
+  cardinal_atom = gdk_atom_intern_static_string ("CARDINAL");
+
+  gdk_property_get (gtk_widget_get_window(GTK_WIDGET(window)),
+                    atom, cardinal_atom, 0, 8, FALSE,
+                   NULL, NULL, NULL, &data);
+
+  if (data)
+    ret = *(int *)data;
+
+  g_free (data);
+  return ret;
+}
+
+
 /* Menubar mnemonics settings handling */
 
 static int
@@ -1688,32 +1711,38 @@
        for (lw = options->initial_windows;  lw != NULL; lw = lw->next)
        {
                InitialWindow *iw = lw->data;
-               TerminalWindow *window;
+               TerminalWindow *window = NULL;
                GList *lt;
 
                g_assert (iw->tabs);
 
-               /* Create & setup new window */
-               window = terminal_app_new_window (app, gdk_screen);
+        if ( lw == options->initial_windows && ((InitialTab 
*)iw->tabs->data)->attach_window )
+            window = terminal_app_get_current_window(app, gdk_screen, 
options->initial_workspace);
 
-               /* Restored windows shouldn't demand attention; see bug 
#586308. */
-               if (iw->source_tag == SOURCE_SESSION)
-                       terminal_window_set_is_restored (window);
-
-               if (options->startup_id != NULL)
-                       gtk_window_set_startup_id (GTK_WINDOW (window), 
options->startup_id);
-
-               /* Overwrite the default, unique window role set in 
terminal_window_init */
-               if (iw->role)
-                       gtk_window_set_role (GTK_WINDOW (window), iw->role);
-
-               if (iw->force_menubar_state)
-                       terminal_window_set_menubar_visible (window, 
iw->menubar_state);
-
-               if (iw->start_fullscreen)
-                       gtk_window_fullscreen (GTK_WINDOW (window));
-               if (iw->start_maximized)
-                       gtk_window_maximize (GTK_WINDOW (window));
+        if (!window)
+        {
+            /* Create & setup new window */
+            window = terminal_app_new_window (app, gdk_screen);
+
+            /* Restored windows shouldn't demand attention; see bug #586308. */
+            if (iw->source_tag == SOURCE_SESSION)
+                terminal_window_set_is_restored (window);
+
+            if (options->startup_id != NULL)
+                gtk_window_set_startup_id (GTK_WINDOW (window), 
options->startup_id);
+
+            /* Overwrite the default, unique window role set in 
terminal_window_init */
+            if (iw->role)
+                gtk_window_set_role (GTK_WINDOW (window), iw->role);
+
+            if (iw->force_menubar_state)
+                terminal_window_set_menubar_visible (window, 
iw->menubar_state);
+
+            if (iw->start_fullscreen)
+                gtk_window_fullscreen (GTK_WINDOW (window));
+            if (iw->start_maximized)
+                gtk_window_maximize (GTK_WINDOW (window));
+        }
 
                /* Now add the tabs */
                for (lt = iw->tabs; lt != NULL; lt = lt->next)
@@ -1842,13 +1871,41 @@
        terminal_encoding_dialog_show (transient_parent);
 }
 
+/*
+* Get the window in the given screen and workspace. If nothing is found,
+* a NULL is returned.
+*/
 TerminalWindow *
-terminal_app_get_current_window (TerminalApp *app)
+terminal_app_get_current_window (TerminalApp *app,
+                                 GdkScreen *from_screen,
+                                 int workspace)
 {
+    GList *res = NULL;
+    TerminalWindow *ret = NULL;
+
        if (app->windows == NULL)
                return NULL;
 
-       return g_list_last (app->windows)->data;
+    res = g_list_last (app->windows);
+
+    g_assert (from_screen != NULL);
+
+    while (res)
+    {
+      int win_workspace;
+      if (gtk_window_get_screen(GTK_WINDOW(res->data)) != from_screen)
+        continue;
+
+      win_workspace = terminal_app_get_workspace_for_window(res->data);
+
+      /* Same workspace or if the window is set to show up on all workspaces */
+      if (win_workspace == workspace || win_workspace == -1)
+        ret = terminal_window_get_latest_focused (ret, 
TERMINAL_WINDOW(res->data));
+
+      res = g_list_previous (res);
+    }
+
+  return ret;
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-app.h 
new/mate-terminal-1.8.1/src/terminal-app.h
--- old/mate-terminal-1.8.0/src/terminal-app.h  2014-01-25 23:33:17.000000000 
+0100
+++ new/mate-terminal-1.8.1/src/terminal-app.h  2014-09-28 21:49:38.000000000 
+0200
@@ -115,7 +115,9 @@
         char           **child_env,
         double           zoom);
 
-TerminalWindow *terminal_app_get_current_window (TerminalApp *app);
+TerminalWindow *terminal_app_get_current_window (TerminalApp *app,
+                                                 GdkScreen *screen,
+                                                 int curr_workspace);
 
 void terminal_app_manage_profiles (TerminalApp     *app,
                                    GtkWindow       *transient_parent);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-options.c 
new/mate-terminal-1.8.1/src/terminal-options.c
--- old/mate-terminal-1.8.0/src/terminal-options.c      2014-02-23 
19:17:25.000000000 +0100
+++ new/mate-terminal-1.8.1/src/terminal-options.c      2014-09-28 
21:49:38.000000000 +0200
@@ -51,6 +51,7 @@
        it->zoom = 1.0;
        it->zoom_set = FALSE;
        it->active = FALSE;
+    it->attach_window = FALSE;
 
        return it;
 }
@@ -305,18 +306,22 @@
 {
        TerminalOptions *options = data;
        gboolean is_profile_id;
+    InitialWindow *iw;
+    InitialTab *it;    
 
        is_profile_id = g_str_has_suffix (option_name, 
"-with-profile-internal-id");
 
        if (options->initial_windows)
        {
-               InitialWindow *iw;
-
                iw = g_list_last (options->initial_windows)->data;
                iw->tabs = g_list_append (iw->tabs, initial_tab_new (value, 
is_profile_id));
        }
        else
-               add_new_window (options, value, is_profile_id);
+    {
+        iw = add_new_window (options, value, is_profile_id);
+        it = g_list_last(iw->tabs)->data;
+        it->attach_window = TRUE;
+    }
 
        return TRUE;
 }
@@ -707,6 +712,7 @@
        options->default_maximize = FALSE;
        options->execute = FALSE;
        options->use_factory = TRUE;
+    options->initial_workspace = -1;
 
        options->env = g_strdupv (env);
        options->startup_id = g_strdup (startup_id && startup_id[0] ? 
startup_id : NULL);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-options.h 
new/mate-terminal-1.8.1/src/terminal-options.h
--- old/mate-terminal-1.8.0/src/terminal-options.h      2014-01-25 
23:33:17.000000000 +0100
+++ new/mate-terminal-1.8.1/src/terminal-options.h      2014-09-28 
21:49:38.000000000 +0200
@@ -53,6 +53,7 @@
        char    *config_file;
        gboolean load_config;
        gboolean save_config;
+    int      initial_workspace;
 } TerminalOptions;
 
 typedef struct
@@ -65,6 +66,7 @@
        double zoom;
        guint zoom_set : 1;
        guint active : 1;
+    guint attach_window : 1;
 } InitialTab;
 
 typedef struct
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-screen.c 
new/mate-terminal-1.8.1/src/terminal-screen.c
--- old/mate-terminal-1.8.0/src/terminal-screen.c       2014-02-23 
19:17:25.000000000 +0100
+++ new/mate-terminal-1.8.1/src/terminal-screen.c       2014-09-25 
14:48:26.000000000 +0200
@@ -157,7 +157,7 @@
 #define HOSTCHARS_CLASS "[-[:alnum:]]"
 #define HOST HOSTCHARS_CLASS "+(\\." HOSTCHARS_CLASS "+)*"
 #define PORT "(?:\\:[[:digit:]]{1,5})?"
-#define PATHCHARS_CLASS "[-[:alnum:]\\Q_$.+!*,;@&=?/~#%\\E]"
+#define PATHCHARS_CLASS "[-[:alnum:]\\Q_$.+!*,:;@&=?/~#%\\E]"
 #define PATHTERM_CLASS "[^\\Q]'.}>) \t\r\n,\"\\E]"
 #define SCHEME "(?:news:|telnet:|nntp:|file:\\/|https?:|ftps?:|sftp:|webcal:)"
 #define USERPASS USERCHARS_CLASS "+(?:" PASSCHARS_CLASS "+)?"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-version.h 
new/mate-terminal-1.8.1/src/terminal-version.h
--- old/mate-terminal-1.8.0/src/terminal-version.h      2014-03-01 
14:50:12.000000000 +0100
+++ new/mate-terminal-1.8.1/src/terminal-version.h      2014-09-28 
21:51:12.000000000 +0200
@@ -25,7 +25,7 @@
 
 #define TERMINAL_MAJOR_VERSION (1)
 #define TERMINAL_MINOR_VERSION (8)
-#define TERMINAL_MICRO_VERSION (0)
+#define TERMINAL_MICRO_VERSION (1)
 
 #define TERMINAL_CHECK_VERSION(major,minor,micro) \
   (TERMINAL_MAJOR_VERSION > (major) || \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-window.c 
new/mate-terminal-1.8.1/src/terminal-window.c
--- old/mate-terminal-1.8.0/src/terminal-window.c       2014-02-23 
19:17:25.000000000 +0100
+++ new/mate-terminal-1.8.1/src/terminal-window.c       2014-09-28 
21:49:38.000000000 +0200
@@ -97,6 +97,7 @@
 
     /* Workaround until gtk+ bug #535557 is fixed */
     guint icon_title_set : 1;
+    time_t focus_time;
 };
 
 #define PROFILE_DATA_KEY "GT::Profile"
@@ -139,6 +140,9 @@
 static gboolean terminal_window_delete_event (GtkWidget *widget,
         GdkEvent *event,
         gpointer data);
+static gboolean terminal_window_focus_in_event (GtkWidget *widget,
+                                                GdkEventFocus *event,
+                                                gpointer data);
 
 static gboolean notebook_button_press_cb     (GtkWidget *notebook,
         GdkEventButton *event,
@@ -2136,6 +2140,10 @@
     g_signal_connect (G_OBJECT (window), "delete_event",
                       G_CALLBACK(terminal_window_delete_event),
                       NULL);
+    g_signal_connect (G_OBJECT (window), "focus_in_event",
+                      G_CALLBACK(terminal_window_focus_in_event),
+                      NULL);
+
 #ifdef MATE_ENABLE_DEBUG
     _TERMINAL_DEBUG_IF (TERMINAL_DEBUG_GEOMETRY)
     {
@@ -2383,6 +2391,20 @@
     return confirm_close_window_or_tab (TERMINAL_WINDOW (widget), NULL);
 }
 
+static gboolean
+terminal_window_focus_in_event (GtkWidget *widget,
+                                GdkEventFocus *event,
+                                gpointer data)
+{
+  TerminalWindow *window = TERMINAL_WINDOW (widget);
+  TerminalWindowPrivate *priv = window->priv;
+
+  if (event->in)
+    priv->focus_time = time(NULL);
+
+  return FALSE;
+}
+
 static void
 terminal_window_show (GtkWidget *widget)
 {
@@ -4264,3 +4286,26 @@
     g_key_file_set_string_list (key_file, group, 
TERMINAL_CONFIG_WINDOW_PROP_TABS, (const char * const *) tab_names, len);
     g_strfreev (tab_names);
 }
+
+
+TerminalWindow *
+terminal_window_get_latest_focused (TerminalWindow *window1,
+                                    TerminalWindow *window2)
+{
+  TerminalWindowPrivate *priv1 = NULL;
+  TerminalWindowPrivate *priv2 = NULL;
+
+  if (!window1)
+    return window2;
+
+  if (!window2)
+    return window1;
+
+  priv1 = window1->priv;
+  priv2 = window2->priv;
+
+  if (priv2->focus_time > priv1->focus_time)
+    return window2;
+
+  return window1;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal-window.h 
new/mate-terminal-1.8.1/src/terminal-window.h
--- old/mate-terminal-1.8.0/src/terminal-window.h       2014-01-25 
23:33:17.000000000 +0100
+++ new/mate-terminal-1.8.1/src/terminal-window.h       2014-09-28 
21:49:38.000000000 +0200
@@ -101,6 +101,9 @@
                                  GKeyFile *key_file,
                                  const char *group);
 
+TerminalWindow *terminal_window_get_latest_focused (TerminalWindow *window1,
+                                                    TerminalWindow *window2);
+
 G_END_DECLS
 
 #endif /* TERMINAL_WINDOW_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/mate-terminal-1.8.0/src/terminal.c new/mate-terminal-1.8.1/src/terminal.c
--- old/mate-terminal-1.8.0/src/terminal.c      2014-02-23 19:17:25.000000000 
+0100
+++ new/mate-terminal-1.8.1/src/terminal.c      2014-09-28 21:49:38.000000000 
+0200
@@ -155,12 +155,13 @@
                TerminalOptions *options = NULL;
                GVariant *v_wd, *v_display, *v_sid, *v_envv, *v_argv;
                char *working_directory = NULL, *display_name = NULL, 
*startup_id = NULL;
+        int initial_workspace = -1;
                char **envv = NULL, **argv = NULL;
                int argc;
                GError *error = NULL;
 
-               g_variant_get (parameters, "(@ay@ay@ay@ay@ay)",
-                              &v_wd, &v_display, &v_sid, &v_envv, &v_argv);
+        g_variant_get (parameters, "(@ay@ay@ay@ayi@ay)",
+                       &v_wd, &v_display, &v_sid, &v_envv, &initial_workspace, 
&v_argv);
 
                working_directory = ay_to_string (v_wd, &error);
                if (error)
@@ -175,10 +176,12 @@
                argv = ay_to_strv (v_argv, &argc);
 
                _terminal_debug_print (TERMINAL_DEBUG_FACTORY,
-                                      "Factory invoked with working-dir='%s' 
display='%s' startup-id='%s'\n",
+                               "Factory invoked with working-dir='%s' 
display='%s' startup-id='%s'"
+                               "workspace='%d'\n",
                                       working_directory ? working_directory : 
"(null)",
                                       display_name ? display_name : "(null)",
-                                      startup_id ? startup_id : "(null)");
+                                      startup_id ? startup_id : "(null)",
+                               initial_workspace);
 
                options = terminal_options_parse (working_directory,
                                                  display_name,
@@ -190,6 +193,8 @@
                                                  &error,
                                                  NULL);
 
+        options->initial_workspace = initial_workspace;
+
                if (options != NULL)
                {
                        terminal_app_handle_options (terminal_app_get (), 
options, FALSE /* no resume */, &error);
@@ -233,6 +238,7 @@
            "<arg type='ay' name='display_name' direction='in' />"
            "<arg type='ay' name='startup_id' direction='in' />"
            "<arg type='ay' name='environment' direction='in' />"
+        "<arg type='i' name='workspace' direction='in' />"        
            "<arg type='ay' name='arguments' direction='in' />"
            "</method>"
            "</interface>"
@@ -340,8 +346,8 @@
        _terminal_debug_print (TERMINAL_DEBUG_FACTORY,
                               "Forwarding arguments to existing instance\n");
 
-       g_variant_builder_init (&builder, G_VARIANT_TYPE ("(ayayayayay)"));
-
+    g_variant_builder_init (&builder, G_VARIANT_TYPE ("(ayayayayiay)"));
+    
        g_variant_builder_add (&builder, "@ay", string_to_ay 
(data->options->default_working_dir));
        g_variant_builder_add (&builder, "@ay", string_to_ay 
(data->options->display_name));
        g_variant_builder_add (&builder, "@ay", string_to_ay 
(data->options->startup_id));
@@ -368,6 +374,8 @@
        g_variant_builder_add (&builder, "@ay",
                               g_variant_new_from_data (G_VARIANT_TYPE ("ay"), 
s, len, TRUE, g_free, s));
 
+    g_variant_builder_add (&builder, "@i", g_variant_new_int32 
(data->options->initial_workspace));
+
        string = g_string_new (NULL);
 
        for (i = 0; i < data->argc; ++i)
@@ -510,6 +518,29 @@
        return g_string_free (name, FALSE);
 }
 
+static int
+get_initial_workspace (void)
+{
+  int ret = -1;
+  GdkWindow *window;
+  guchar *data = NULL;
+  GdkAtom atom;
+  GdkAtom cardinal_atom;
+
+  g_type_init ();
+
+  window = gdk_get_default_root_window();
+
+  atom = gdk_atom_intern_static_string ("_NET_CURRENT_DESKTOP");
+  cardinal_atom = gdk_atom_intern_static_string ("CARDINAL");
+
+  gdk_property_get (window, atom, cardinal_atom, 0, 8, FALSE, NULL, NULL, 
NULL, &data);
+
+  ret = *(int *)data;
+  g_free (data);
+  return ret;
+}
+
 int
 main (int argc, char **argv)
 {
@@ -610,6 +641,9 @@
                data->argv = argv_copy;
                data->argc = argc_copy;
 
+        gtk_init(&argc, &argv);
+        options->initial_workspace = get_initial_workspace ();
+
                owner_id = g_bus_own_name (G_BUS_TYPE_SESSION,
                                           data->factory_name,
                                           G_BUS_NAME_OWNER_FLAGS_NONE,

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to