diff options
Diffstat (limited to 'minus-galaplugin.patch')
-rw-r--r-- | minus-galaplugin.patch | 547 |
1 files changed, 0 insertions, 547 deletions
diff --git a/minus-galaplugin.patch b/minus-galaplugin.patch index a4db0673fbe5..fba87d82ffa8 100644 --- a/minus-galaplugin.patch +++ b/minus-galaplugin.patch @@ -1,252 +1,3 @@ ---- src/wingpanel/wingpanel-interface/Main.vala 2017-10-12 18:58:46.125181484 +0900 -+++ /dev/null 2017-10-12 18:36:39.960762875 +0900 -@@ -1,83 +0,0 @@ --/* -- * Copyright (c) 2011-2015 Wingpanel Developers (http://launchpad.net/wingpanel) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * General Public License for more details. -- * -- * You should have received a copy of the GNU General Public -- * License along with this program; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02110-1301 USA. -- */ -- --/* -- * This plugin adds a dbus-interface to gala that provides additional information -- * about windows and workspaces for the panel. -- */ -- --public class WingpanelInterface.Main : Gala.Plugin { -- private const string DBUS_NAME = "org.pantheon.gala.WingpanelInterface"; -- private const string DBUS_PATH = "/org/pantheon/gala/WingpanelInterface"; -- -- public static Gala.WindowManager wm; -- public static Meta.Screen screen; -- -- private DBusConnection? dbus_connection = null; -- -- public override void initialize (Gala.WindowManager _wm) { -- if (_wm == null) { -- return; -- } -- -- wm = _wm; -- screen = wm.get_screen (); -- -- Bus.own_name (BusType.SESSION, -- DBUS_NAME, -- BusNameOwnerFlags.NONE, -- on_bus_aquired, -- null, -- () => warning ("Aquirering \"%s\" failed.", DBUS_NAME)); -- } -- -- public override void destroy () { -- try { -- if (dbus_connection != null) { -- dbus_connection.close_sync (); -- } -- } catch (Error e) { -- warning ("Closing DBus service failed: %s", e.message); -- } -- } -- -- private void on_bus_aquired (DBusConnection connection) { -- dbus_connection = connection; -- -- try { -- var server = new DBusServer (); -- -- dbus_connection.register_object (DBUS_PATH, server); -- -- debug ("DBus service registered."); -- } catch (Error e) { -- warning ("Registering DBus service failed: %s", e.message); -- } -- } --} -- --public Gala.PluginInfo register_plugin () { -- return { -- "wingpanel-interface", -- "Wingpanel Developers", -- typeof (WingpanelInterface.Main), -- Gala.PluginFunction.ADDITION, -- Gala.LoadPriority.IMMEDIATE -- }; --} ---- src/wingpanel/wingpanel-interface/Settings.vala 2017-10-12 18:58:46.125181484 +0900 -+++ /dev/null 2017-10-12 18:36:39.960762875 +0900 -@@ -1,42 +0,0 @@ --/* -- * Copyright (c) 2011-2015 Wingpanel Developers (http://launchpad.net/wingpanel) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * General Public License for more details. -- * -- * You should have received a copy of the GNU General Public -- * License along with this program; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02110-1301 USA. -- */ -- --public class WingpanelInterface.AnimationSettings : Granite.Services.Settings { -- public bool enable_animations { get; set; } -- public int open_duration { get; set; } -- public int snap_duration { get; set; } -- public int close_duration { get; set; } -- public int minimize_duration { get; set; } -- public int workspace_switch_duration { get; set; } -- public int menu_duration { get; set; } -- -- static AnimationSettings? instance = null; -- -- private AnimationSettings () { -- base ("org.pantheon.desktop.gala.animations"); -- } -- -- public static unowned AnimationSettings get_default () { -- if (instance == null) { -- instance = new AnimationSettings (); -- } -- -- return instance; -- } --} ---- src/wingpanel/wingpanel-interface/FocusManager.vala 2017-10-12 18:58:46.125181484 +0900 -+++ /dev/null 2017-10-12 18:36:39.960762875 +0900 -@@ -1,72 +0,0 @@ --/* -- * Copyright (c) 2011-2015 Wingpanel Developers (http://launchpad.net/wingpanel) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * General Public License for more details. -- * -- * You should have received a copy of the GNU General Public -- * License along with this program; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02110-1301 USA. -- */ -- --public class WingpanelInterface.FocusManager : Object { -- private static FocusManager? instance = null; -- -- private Meta.Workspace? current_workspace = null; -- private Meta.Window? last_focused_window = null; -- -- public FocusManager () { -- Main.screen.workspace_switched.connect (() => { -- update_current_workspace (); -- }); -- -- update_current_workspace (); -- } -- -- public void remember_focused_window () { -- var windows = current_workspace.list_windows (); -- -- foreach (Meta.Window window in windows) { -- if (window.has_focus ()) { -- last_focused_window = window; -- -- return; -- } -- } -- } -- -- public void restore_focused_window () { -- if (last_focused_window != null) { -- var display = Main.screen.get_display (); -- last_focused_window.focus (display.get_current_time ()); -- } -- } -- -- private void update_current_workspace () { -- var workspace = Main.screen.get_workspace_by_index (Main.screen.get_active_workspace_index ()); -- -- if (workspace == null) { -- warning ("Cannot get active workspace"); -- -- return; -- } -- -- current_workspace = workspace; -- } -- -- public static FocusManager get_default () { -- if (instance == null) { -- instance = new FocusManager (); -- } -- -- return instance; -- } --} ---- src/wingpanel/wingpanel-interface/DBusServer.vala 2017-10-13 03:00:24.840092343 +0900 -+++ /dev/null 2017-10-13 01:49:26.502721048 +0900 -@@ -1,40 +0,0 @@ --/* -- * Copyright (c) 2011-2015 Wingpanel Developers (http://launchpad.net/wingpanel) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * General Public License for more details. -- * -- * You should have received a copy of the GNU General Public -- * License along with this program; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02110-1301 USA. -- */ -- --[DBus (name = "org.pantheon.gala.WingpanelInterface")] --public class WingpanelInterface.DBusServer : Object { -- private BackgroundManager background_manager; -- -- public signal void state_changed (BackgroundState state, uint animation_duration); -- -- public void initialize (int monitor, int panel_height) { -- background_manager = new BackgroundManager (monitor, panel_height); -- background_manager.state_changed.connect ((state, animation_duration) => { -- state_changed (state, animation_duration); -- }); -- } -- -- public void remember_focused_window () { -- FocusManager.get_default ().remember_focused_window (); -- } -- -- public void restore_focused_window () { -- FocusManager.get_default ().restore_focused_window (); -- } --} --- src/wingpanel/CMakeLists.txt 2017-10-13 03:25:28.007664080 +0900 +++ src/wingpanel/CMakeLists.txt.new 2017-10-13 03:27:00.135900068 +0900 @@ -121,8 +121,6 @@ @@ -258,301 +9,3 @@ if (BUILD_SAMPLE) add_subdirectory (sample) endif () ---- src/wingpanel/wingpanel-interface/CMakeLists.txt 2018-03-05 15:53:08.967254520 +0900 -+++ /dev/null 2018-03-05 14:42:26.994151215 +0900 -@@ -1,90 +0,0 @@ --find_package (PkgConfig) -- --pkg_check_modules (PLUGIN REQUIRED gala granite) -- --add_definitions (${PLUGIN_CFLAGS}) --link_directories (${PLUGIN_LIBRARY_DIRS}) --set (WINGPANELINTERFACE "wingpanel-interface") -- --find_package (Vala REQUIRED) --include (ValaVersion) --ensure_vala_version ("0.12.0" MINIMUM) -- --# We need to know which version of the Mutter API is in use --pkg_check_modules(MUTTER320 QUIET libmutter>=3.19) --pkg_check_modules(MUTTER322 QUIET libmutter>=3.21) --pkg_check_modules(MUTTER324 QUIET libmutter-0>=3.23.90) --pkg_check_modules(MUTTER326 QUIET libmutter-1>=3.25.90) --pkg_check_modules(MUTTER328 QUIET libmutter-2>=3.27.91) -- --set (EXTRA_VALA_FLAGS "") --set (EXTRA_MUTTER_PKS cogl-1.0 clutter-1.0 libmutter) --set (EXTRA_MUTTER_PACKAGES cogl-1.0 clutter-1.0 libmutter) --if (MUTTER320_FOUND) -- set (EXTRA_VALA_FLAGS ${EXTRA_VALA_FLAGS} --define HAS_MUTTER320) --endif () -- --if (MUTTER322_FOUND) -- set (EXTRA_VALA_FLAGS ${EXTRA_VALA_FLAGS} --define HAS_MUTTER322) -- set (EXTRA_MUTTER_PKS mutter-cogl-1.0 mutter-cogl-pango-1.0 mutter-cogl-path-1.0 mutter-clutter-1.0 libmutter) -- set (EXTRA_MUTTER_PACKAGES mutter-cogl-1.0 mutter-clutter-1.0) --endif () -- --if (MUTTER324_FOUND) -- set (EXTRA_VALA_FLAGS ${EXTRA_VALA_FLAGS} --define HAS_MUTTER320 --define HAS_MUTTER322 --define HAS_MUTTER324) -- set (EXTRA_MUTTER_PKS mutter-cogl-0 mutter-cogl-pango-0 mutter-cogl-path-0 mutter-clutter-0 libmutter-0) -- set (EXTRA_MUTTER_PACKAGES mutter-cogl-0 mutter-clutter-0) --endif () -- --if (MUTTER326_FOUND) -- set (EXTRA_VALA_FLAGS ${EXTRA_VALA_FLAGS} --define HAS_MUTTER320 --define HAS_MUTTER322 --define HAS_MUTTER324 --define HAS_MUTTER326) -- set (EXTRA_MUTTER_PKS mutter-cogl-1 mutter-cogl-pango-1 mutter-cogl-path-1 mutter-clutter-1 libmutter-1) -- set (EXTRA_MUTTER_PACKAGES mutter-cogl-1 mutter-clutter-1) --endif () -- --if (MUTTER328_FOUND) -- set (EXTRA_VALA_FLAGS ${EXTRA_VALA_FLAGS} --define HAS_MUTTER320 --define HAS_MUTTER322 --define HAS_MUTTER324 --define HAS_MUTTER326 --define HAS_MUTTER328) -- set (EXTRA_MUTTER_PKS mutter-cogl-2 mutter-cogl-pango-2 mutter-cogl-path-2 mutter-clutter-2 libmutter-2) -- set (EXTRA_MUTTER_PACKAGES mutter-cogl-2 mutter-clutter-2) --endif () -- --pkg_check_modules (PLUGIN_MUTTER REQUIRED ${EXTRA_MUTTER_PKS}) -- --include (ValaPrecompile) --vala_precompile (VALA_C ${WINGPANELINTERFACE} -- Main.vala -- DBusServer.vala -- BackgroundManager.vala -- FocusManager.vala -- Settings.vala -- Utils.vala --PACKAGES -- gala -- granite -- cogl-fixes -- ${EXTRA_MUTTER_PACKAGES} --OPTIONS -- --thread -- --vapidir=${CMAKE_SOURCE_DIR}/vapi -- ${EXTRA_VALA_FLAGS} --) -- --add_library (${WINGPANELINTERFACE} MODULE ${VALA_C}) --target_link_libraries(${WINGPANELINTERFACE} ${PLUGIN_LIBRARIES} ${PLUGIN_MUTTER_LIBRARIES} m) -- --# Add -rpath ldflag if libgala is using mutter >= 3.21 to pick up libmutter-*.so --if (MUTTER328_FOUND) -- _pkgconfig_invoke("libmutter-2" MUTTER TYPELIB_DIR "" "--variable=typelibdir") -- set_target_properties(${WINGPANELINTERFACE} PROPERTIES LINK_FLAGS -Wl,-rpath,${MUTTER_TYPELIB_DIR}) --elseif (MUTTER326_FOUND) -- _pkgconfig_invoke("libmutter-1" MUTTER TYPELIB_DIR "" "--variable=typelibdir") -- set_target_properties(${WINGPANELINTERFACE} PROPERTIES LINK_FLAGS -Wl,-rpath,${MUTTER_TYPELIB_DIR}) --elseif (MUTTER324_FOUND) -- _pkgconfig_invoke("libmutter-0" MUTTER TYPELIB_DIR "" "--variable=typelibdir") -- set_target_properties(${WINGPANELINTERFACE} PROPERTIES LINK_FLAGS -Wl,-rpath,${MUTTER_TYPELIB_DIR}) --elseif (MUTTER322_FOUND) -- _pkgconfig_invoke("libmutter" MUTTER TYPELIB_DIR "" "--variable=typelibdir") -- set_target_properties(${WINGPANELINTERFACE} PROPERTIES LINK_FLAGS -Wl,-rpath,${MUTTER_TYPELIB_DIR}) --endif () -- --install (TARGETS ${WINGPANELINTERFACE} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/gala/plugins) ---- src/wingpanel/wingpanel-interface/Utils.vala 2018-05-13 16:35:27.438070885 +0900 -+++ /dev/null 2018-05-12 19:49:31.706719886 +0900 -@@ -1,202 +0,0 @@ --/* -- * Copyright (c) 2011-2015 Wingpanel Developers (http://launchpad.net/wingpanel) -- * -- * This program is free software; you can redistribute it and/or -- * modify it under the terms of the GNU General Public -- * License as published by the Free Software Foundation; either -- * version 2 of the License, or (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * General Public License for more details. -- * -- * You should have received a copy of the GNU General Public -- * License along with this program; if not, write to the -- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -- * Boston, MA 02110-1301 USA. -- */ -- --/* -- * The method for calculating the background information and the classes that are -- * related to it are copied from Gala.DBus. -- */ -- --namespace WingpanelInterface.Utils { -- private const double SATURATION_WEIGHT = 1.5; -- private const double WEIGHT_THRESHOLD = 1.0; -- -- private class DummyOffscreenEffect : Clutter.OffscreenEffect { -- public signal void done_painting (); -- -- public override void post_paint () { -- base.post_paint (); -- Idle.add (() => { -- done_painting (); -- return false; -- }); -- } -- } -- -- public struct ColorInformation { -- double average_red; -- double average_green; -- double average_blue; -- double mean_luminance; -- double luminance_variance; -- double mean_acutance; -- } -- -- public async ColorInformation get_background_color_information (Gala.WindowManager wm, int monitor, -- int reference_x, int reference_y, int reference_width, int reference_height) throws DBusError { -- var background = wm.background_group.get_child_at_index (monitor); -- -- if (background == null) { -- throw new DBusError.INVALID_ARGS ("Invalid monitor requested: %i".printf (monitor)); -- } -- -- var effect = new DummyOffscreenEffect (); -- background.add_effect (effect); -- -- var tex_width = (int)background.width; -- var tex_height = (int)background.height; -- -- int x_start = reference_x; -- int y_start = reference_y; -- int width = int.min (tex_width - reference_x, reference_width); -- int height = int.min (tex_height - reference_y, reference_height); -- -- if (x_start > tex_width || x_start > tex_height || width <= 0 || height <= 0) { -- throw new DBusError.INVALID_ARGS ("Invalid rectangle specified: %i, %i, %i, %i".printf (x_start, y_start, width, height)); -- } -- -- double mean_acutance = 0, variance = 0, mean = 0, rTotal = 0, gTotal = 0, bTotal = 0; -- ulong paint_signal_handler = 0; -- -- paint_signal_handler = effect.done_painting.connect (() => { -- SignalHandler.disconnect (effect, paint_signal_handler); -- background.remove_effect (effect); -- -- var texture = (Cogl.Texture)effect.get_texture (); -- var pixels = new uint8[texture.get_width () * texture.get_height () * 4]; -- var pixel_lums = new double[texture.get_width () * texture.get_height ()]; -- -- CoglFixes.texture_get_data (texture, Cogl.PixelFormat.BGRA_8888_PRE, 0, pixels); -- -- int size = width * height; -- -- double mean_squares = 0; -- double pixel = 0; -- -- double max, min, score, delta, scoreTotal = 0, rTotal2 = 0, gTotal2 = 0, bTotal2 = 0; -- -- /* -- * code to calculate weighted average color is copied from -- * plank's lib/Drawing/DrawingService.vala average_color() -- * http://bazaar.launchpad.net/~docky-core/plank/trunk/view/head:/lib/Drawing/DrawingService.vala -- */ -- for (int y = y_start; y < height; y++) { -- for (int x = x_start; x < width; x++) { -- int i = y * width * 4 + x * 4; -- -- uint8 r = pixels[i]; -- uint8 g = pixels[i + 1]; -- uint8 b = pixels[i + 2]; -- -- pixel = (0.3 * r + 0.59 * g + 0.11 * b) ; -- -- pixel_lums[y * width + x] = pixel; -- -- min = uint8.min (r, uint8.min (g, b)); -- max = uint8.max (r, uint8.max (g, b)); -- -- delta = max - min; -- -- /* prefer colored pixels over shades of grey */ -- score = SATURATION_WEIGHT * (delta == 0 ? 0.0 : delta / max); -- -- rTotal += score * r; -- gTotal += score * g; -- bTotal += score * b; -- scoreTotal += score; -- -- rTotal += r; -- gTotal += g; -- bTotal += b; -- -- mean += pixel; -- mean_squares += pixel * pixel; -- } -- } -- -- for (int y = y_start + 1; y < height - 1; y++) { -- for (int x = x_start + 1; x < width - 1; x++) { -- var acutance = -- (pixel_lums[y * width + x] * 4) - -- ( -- pixel_lums[y * width + x - 1] + -- pixel_lums[y * width + x + 1] + -- pixel_lums[(y - 1) * width + x] + -- pixel_lums[(y + 1) * width + x] -- ); -- -- mean_acutance += acutance > 0 ? acutance : -acutance; -- } -- } -- -- scoreTotal /= size; -- bTotal /= size; -- gTotal /= size; -- rTotal /= size; -- -- if (scoreTotal > 0.0) { -- bTotal /= scoreTotal; -- gTotal /= scoreTotal; -- rTotal /= scoreTotal; -- } -- -- bTotal2 /= size * uint8.MAX; -- gTotal2 /= size * uint8.MAX; -- rTotal2 /= size * uint8.MAX; -- -- /* -- * combine weighted and not weighted sum depending on the average "saturation" -- * if saturation isn't reasonable enough -- * s = 0.0 -> f = 0.0 ; s = WEIGHT_THRESHOLD -> f = 1.0 -- */ -- if (scoreTotal <= WEIGHT_THRESHOLD) { -- var f = 1.0 / WEIGHT_THRESHOLD * scoreTotal; -- var rf = 1.0 - f; -- -- bTotal = bTotal * f + bTotal2 * rf; -- gTotal = gTotal * f + gTotal2 * rf; -- rTotal = rTotal * f + rTotal2 * rf; -- } -- -- /* there shouldn't be values larger then 1.0 */ -- var max_val = double.max (rTotal, double.max (gTotal, bTotal)); -- -- if (max_val > 1.0) { -- bTotal /= max_val; -- gTotal /= max_val; -- rTotal /= max_val; -- } -- -- mean /= size; -- mean_squares = mean_squares / size; -- -- variance = (mean_squares - (mean * mean)); -- -- mean_acutance /= (width - 2) * (height - 2); -- -- get_background_color_information.callback (); -- }); -- -- background.queue_redraw (); -- -- yield; -- -- return { rTotal, gTotal, bTotal, mean, variance, mean_acutance }; -- } -- --} |