Merge lp:~zeitgeist/plank/zeitgeist into lp:plank

Proposed by Rico Tzschichholz on 2014-01-27
Status: Superseded
Proposed branch: lp:~zeitgeist/plank/zeitgeist
Merge into: lp:plank
Diff against target: 315 lines (+188/-3)
5 files modified
configure.ac (+29/-0)
lib/Items/ApplicationDockItemProvider.vala (+141/-1)
lib/Items/DefaultApplicationDockItemProvider.vala (+11/-2)
lib/Items/TransientDockItem.vala (+5/-0)
lib/libplank.symbols (+2/-0)
To merge this branch: bzr merge lp:~zeitgeist/plank/zeitgeist
Reviewer Review Type Date Requested Status
Docky Core 2014-01-27 Pending
Review via email: mp+203310@code.launchpad.net

This proposal supersedes a proposal from 2013-03-31.

This proposal has been superseded by a proposal from 2016-01-16.

To post a comment you must log in.
Daniel Fore (danrabbit) wrote : Posted in a previous version of this proposal

I like the idea, but I'm worried about things just popping up unexpectedly. I think it might make sense to wait for the user to open one of the suggested apps and then "smart-pin" it at that time. In this way, we're not actually adding the item, we're just not removing it :p

lp:~zeitgeist/plank/zeitgeist updated on 2016-01-30
956. By Rico Tzschichholz on 2014-01-27

lib: Update symbols

957. By Rico Tzschichholz on 2014-01-28

dockwindow: Add HoveredItemProvider property

Fix edge cases for external drops and prepares for item spacing support.

958. By Rico Tzschichholz on 2014-01-28

dragmanager: Fix GLib.Source.remove critical

959. By Rico Tzschichholz on 2014-01-28

dockwindow: Fix cursor_region check

960. By Rico Tzschichholz on 2014-01-29

build: Make Apport-support optional and enable it by default

961. By Rico Tzschichholz on 2014-01-29

drawingservice: Use dimensions instead of loading full image from file

962. By Rico Tzschichholz on 2014-01-29

dockitem: Properly center non-square icons on our surface

963. By Rico Tzschichholz on 2014-01-30

Move some item-position handling into DockController

This goes with some clean up like dropping FirstItemPosition-property of
DockItemProvider and removal of the useless position-recovery on
drag'n'drop cancellation.

964. By Rico Tzschichholz on 2014-02-04

hidemanager: Clean up DockHovered updates triggered by d'n'd actions

Stop listening to External/InteralDragActive changes and add proper call
to DragManager.

965. By Rico Tzschichholz on 2014-02-04

add_item_with_uri: Don't trigger two updates if a target-item is given

Push "target" argument up into add_item to commonize api a bit.

966. By Rico Tzschichholz on 2014-02-05

dockitemprovider: Don't use Position for inserting in internal-items

Only items in visible-items have properly set Position values therefore
it should not be used as index for internal-items.

967. By Rico Tzschichholz on 2014-02-06

dockelement: Factor-out base-class for DockItem and DockItemProvider

968. By Rico Tzschichholz on 2014-02-06

dockitemprovider: Remove redundant redraw trigger

Update-requests caused by "Icon" changes are handled with "needs_redraw".

969. By Rico Tzschichholz on 2014-02-11

dockwindow: Adapt to changed GdkX11 bindings

970. By Rico Tzschichholz on 2014-02-11

hidemanager: No need to listen to motion-events

Handling enter/leave events seems to be enough to determine the info we
need to properly hide and unhide the dock.

971. By Rico Tzschichholz on 2014-02-11

docs: Fix build

972. By Rico Tzschichholz on 2014-02-11

hidemanager: Property-"notify"-optimizations

Stop listening to our own property changes and make sure to stall
"notify" until everything is in a consistent state.

973. By Rico Tzschichholz on 2014-02-11

Rename hidemanager.DockHovered to Hovered

974. By Rico Tzschichholz on 2014-02-11

hoverwindow: Let dockwindow own it and drop dockcontroller dependency

975. By Rico Tzschichholz on 2014-02-12

tests/preferences: Check triggered-count on delay too

976. By Rico Tzschichholz on 2014-02-12

dockrenderer: Don't emit "notify" for hide_progress/opacity property

977. By Rico Tzschichholz on 2014-02-12

preferences: Don't try to save_prefs twices, the first would be delayed

978. By Rico Tzschichholz on 2014-02-13

dockrenderer: Don't reset-caches of position-manager twice on start up

979. By Rico Tzschichholz on 2014-02-13

positionmanager: Squash possible duplicate notify emits on reset_caches

980. By Rico Tzschichholz on 2014-02-13

controller: Don't reset-caches if amount of items didn't change

981. By Rico Tzschichholz on 2014-02-13

dockrenderer: Handle prefs-changes with one callback

This mainly reduces calls of position-manager's reset-caches.

982. By Rico Tzschichholz on 2014-02-13

dockrenderer: More use of reset_position_manager rather than direct calls

983. By Rico Tzschichholz on 2014-02-13

positionmanager: Add reasonable fallback-padding for non-compositing mode

984. By Rico Tzschichholz on 2014-02-13

dockrenderer: No need to delay loading the theme

985. By Rico Tzschichholz on 2014-02-13

animatedrenderer: Require widget to be given on construction

986. By Rico Tzschichholz on 2014-02-13

tests: Add simple controller construction tests

987. By Rico Tzschichholz on 2014-02-14

vapi: Fix build with valac 0.16.x

Explictly specify type-check-function for GdkX11 classes.

988. By Rico Tzschichholz on 2014-02-14

dockwindow: Wait for dock to be unhidden before showing the hover-window

989. By Rico Tzschichholz on 2014-02-14

hidemanager: No need for further things if the dock is already unhidden

990. By Rico Tzschichholz on 2014-02-18

hidemanager: Initilize private fields

991. By Rico Tzschichholz on 2014-02-18

dockrenderer: Initialize private fields

992. By Rico Tzschichholz on 2014-02-19

windowcontrol: Validate Wnck.Window object before further use

While there was huge delay make sure the given object isn't disposed
already before using it.

This is probably what happened in the referenced bug-report.

993. By Rico Tzschichholz on 2014-02-19

dockprefs: Only verify Monitor on start-up and setting-file-change

While plank is running don't update the Monitor setting if a monitor is
disconnected/turned-off in preparation for the system going to suspend.

994. By Rico Tzschichholz on 2014-02-20

dragmanager: Clean up and reorganize properties/fields

995. By Rico Tzschichholz on 2014-02-20

items: Rename ClickAnimation to Animation

996. By Rico Tzschichholz on 2014-02-20

Add ScrolledAnimation for DockElements

This adds a simple visual feedback while the user scrolls over items.

Increase the previously used hard-coded threshold of 200ms to 300ms
for application-window-switching by scrolling.

997. By Rico Tzschichholz on 2014-02-20

renderer: Make sure the item has chosen a corresponding Animation to draw

998. By Rico Tzschichholz on 2014-02-20

items: Allow to pin/un-pin an item only if LockItems isn't enabled

999. By Rico Tzschichholz on 2014-02-20

items: Check if there is actually a SeparatorMenuItem needed

1000. By Rico Tzschichholz on 2014-02-27

Add HoveredAnimation for DockElements

This adds a smooth animation while the user hovers over items.

1001. By Rico Tzschichholz on 2014-02-28

po: Update translations

1002. By Rico Tzschichholz on 2014-02-28

itemfactory: Fix path for google-chrome.desktop

1003. By Rico Tzschichholz on 2014-02-28

tests: Don't be verbose by default

1004. By Rico Tzschichholz on 2014-02-28

build: Don't dist c-docs and make their build optional

1005. By Rico Tzschichholz on 2014-03-06

items: Don't initialize running-applications twice on start-up

AppDockItemProvider takes care of that already, no need to do it again.

1006. By Rico Tzschichholz on 2014-03-08

build: Fix typo

1007. By Rico Tzschichholz on 2014-03-17

windowcontrol: Handle delayed window-focus more robust

While scheduling a delayed focus keep track of vanishing windows and stop
the timer if the target-window got already closed to prevent a segfault.

1008. By Rico Tzschichholz on 2014-03-20

Add support for GTK's HiDPI

The main problem are Pixbuf based drawings which need to be upscaled
by the scale-factor and downscaled for the dock-rendering again.

The Gdk-API is providing scaled coords automatically while Wnck is
working with and returning the real unscaled dimensions. So we are
adjusting those accordingly.

1009. By Rico Tzschichholz on 2014-03-27

themes: "Transparent" shouldn't draw border-lines

1010. By Rico Tzschichholz on 2014-04-07

items: Allow other applications to steal and provide com.canonical.Unity

Rework status messages for acquiring and losing the bus-name.

1011. By Rico Tzschichholz on 2014-04-07

vapi: Update libbamf3 bindings

1012. By Rico Tzschichholz on 2014-04-10

Make sure to update the icon-regions when needed

If the newly open window did not trigger a hide or unhide process of the
dock then icon-regions were outdated or not set at all on new windows.

1013. By Rico Tzschichholz on 2014-04-10

dragmanager: Force initial call hover-item-changed for external-drags

Dragging a file onto an item without hovering another one before did not
trigger the emulated scrolling. Therefore the corresponding windows did
not get focused if available.

1014. By Rico Tzschichholz on 2014-04-12

dragmanager: When dnd-action is finished make sure to hide dock if needed

1015. By Rico Tzschichholz on 2014-04-12

dockwindow: Be more restrictive on further actions if the dock is hidden

This mean do not set a HoveredItem if the hide-manager suggested the dock
is currently hidden. Futhermore this avoids showing the hover-window
early if an unhide-delay is set.
Also make sure to reset HoveredItemProvider along with HoveredItem.

1016. By Rico Tzschichholz on 2014-04-13

lib: Update symbols

1017. By Rico Tzschichholz on 2014-04-14

Prepare 0.6.0 release

1018. By Rico Tzschichholz on 2014-04-14

Back to development

1019. By Rico Tzschichholz on 2014-04-16

dockitem: Do not copy "Provider" property value

1020. By Rico Tzschichholz on 2014-04-16

items: Add some checks and criticals to DockItemProviders

1021. By Rico Tzschichholz on 2014-05-02

dockitemprovider: Actually pass all moved items on item_positions_changed

Optimize the Gee.List operations by implicitly using get/set and avoid
unnecessary removes/inserts which are not needed while the item-amount
and therefore list-size doesn't change.

1022. By Rico Tzschichholz on 2014-05-03

data: Provide and install plank.appdata.xml file

1023. By Rico Tzschichholz on 2014-05-04

dockitemprovider: Make controller aware of changed items on replace_item

1024. By Rico Tzschichholz on 2014-05-20

Prepare 0.6.1 release

1025. By Rico Tzschichholz on 2014-05-20

Back to development

1026. By Rico Tzschichholz on 2014-05-20

build: Require valac >= 0.22.0 and obsolete conditionals

1027. By Rico Tzschichholz on 2014-06-02

Add compile time and runtime retrievable version information

1028. By Rico Tzschichholz on 2014-06-16

items: Drop maximize/unmaximize menu-entries

They are considered clutter and of no real use. Interacting with the
actual window is prefered to achieve those actions.

1029. By Rico Tzschichholz on 2014-06-16

Refactor dockitem-loading and serialization of pinned items

Move dock-item creation to item-factory and move more bits of global
settings handling to the controller.

1030. By Rico Tzschichholz on 2014-06-16

appdockitem: Shorten window-title shown in menu using application-name

1031. By Rico Tzschichholz on 2014-06-16

appdockitem: Drop debug output

1032. By Rico Tzschichholz on 2014-04-13

Add pressure-reveal support to unhide the dockwindow

Conditionally use XInput2.3 barriers if available to do this.

1033. By Rico Tzschichholz on 2014-06-16

Add pressure-reveal setting and disable by default

1034. By Rico Tzschichholz on 2014-06-17

positionmanager: Precalculate top_offset to have it include TopPadding

This avoids doing this over and over again in several places.

1035. By Rico Tzschichholz on 2014-06-17

Make sure to update visibile-items in prepare

Not pinned items doesnt show up initially.

Regression caused by r1029

1036. By Rico Tzschichholz on 2014-07-20

Use GLib.get_monotonic_time() for timestamps used to calculate animations

This drop all non-user visible usage of GLib.DateTime.

1037. By Rico Tzschichholz on 2014-07-21

renderer: Don't optimize drawing of the first frame

1038. By Rico Tzschichholz on 2014-07-21

filedockitem: Consider "folder" being a default-icon too

1039. By Rico Tzschichholz on 2014-07-21

drawing: Don't use IconTheme.has_icon()

While we are checking/handling null this check is superfluous.

1040. By Rico Tzschichholz on 2014-07-24

po: Update translations

1041. By Rico Tzschichholz on 2014-07-24

Don't count or provide menu-entries for windows which have a transient

1042. By Rico Tzschichholz on 2014-07-26

Add ability to show pinned applications only

This adds the "PinnedOnly" setting which defaults to false. If set there
will be no transient items shown.

1043. By Rico Tzschichholz on 2014-07-26

controller: Set Add/RemoveTime of item-providers accordingly

1044. By Rico Tzschichholz on 2014-07-30

itemfactory: Update creation of default applications-items

1045. By Rico Tzschichholz on 2014-07-30

drawing/load_pixbuf: Properly try icon-name with stripped extension

This fixes e.g. looking for "skype.png" which is registered as "skype".

1046. By Rico Tzschichholz on 2014-07-30

hidemanager: Make pressure debug-output optional

1047. By Rico Tzschichholz on 2014-07-30

lib: Update symbols

1048. By Rico Tzschichholz on 2014-07-31

provider: Handle item-target is placeholder-item correctly

1049. By Rico Tzschichholz on 2014-07-31

itemfactory: Only strip the extension from the launcher-filename

There are desktop-files named like "org.gnome.Polari.desktop" now.

1050. By Rico Tzschichholz on 2014-07-31

Creating transient-items on dockitem-deletion belongs in default-provider

Leftover from the refactoring which should have been there since then.
Surfaced due the usage of PinnedOnly where the default-provider is
actually a simple ApplicationDockItemProvider.

1051. By Rico Tzschichholz on 2014-08-01

build: Silence c-warnings for plank-binary too

1052. By Rico Tzschichholz on 2014-08-30

drawingservice: Add try_get_icon_file() to handle of possible icon-files

1053. By Rico Tzschichholz on 2014-08-30

dockitem: Monitor icon changes if it points to an existing local file

1054. By Rico Tzschichholz on 2014-08-31

Add auto-pinning setting and enable by default

This makes it possible to disable this existing feature if wanted.

1055. By Rico Tzschichholz on 2014-09-01

Force internal Wnck update when needed and try to redruce races with Bamf

This is more a workaround. The better solution would be to avoid/reduce
the mixed usage of Wnck and Bamf signals.

The problem surfaced and became reproducable with r1041 which relies on
consistency between Wnck and Bamf.

1056. By Rico Tzschichholz on 2014-09-01

Remove all LauncherEntry-items which match the vanished dbus-sender-name

1057. By Rico Tzschichholz on 2014-09-01

Try to avoid adding superfluous LauncherEntry-items

If an application sends multiple requests referring to different
application-uris try not to use/add more than one item.

1058. By Rico Tzschichholz on 2014-09-02

renderer: Minor clean up using position-manager

1059. By Rico Tzschichholz on 2014-09-02

Clean up resize/repositioning code and api of position-manager

1060. By Rico Tzschichholz on 2014-09-02

Handle changed compositing-support without delay in position-manager

1061. By Rico Tzschichholz on 2014-09-02

positionmanager: Prefix functions with "get_" accordingly

1062. By Rico Tzschichholz on 2014-09-03

drawing: Drop usage of deprecated Gdk.Color

1063. By Rico Tzschichholz on 2014-09-03

drawing: Let Drawing.Color inherit from Gdk.RGBA

1064. By Rico Tzschichholz on 2014-09-03

Avoid some superfluous string-copying

1065. By Rico Tzschichholz on 2014-09-04

dockpreferences: Fix mix-up in Alignment blurbs

1066. By Rico Tzschichholz on 2014-09-07

Introduce abstract DockContainer and let DockController implement it

This removes some logic/code duplications and makes thing more abstract
while handling DockItemProviders like DockItems.

1067. By Rico Tzschichholz on 2014-09-07

docs: Fix build and add DockContainer

1068. By Rico Tzschichholz on 2014-09-09

controller: Add missing call of prepare()

Regression from r1066 while changing PinnedOnly setting on runtime.

1069. By Rico Tzschichholz on 2014-09-11

Hide "Quit" while running on Pantheon

1070. By Rico Tzschichholz on 2014-09-11

AUTHORS: Promote myself to primary contact

1071. By Rico Tzschichholz on 2014-09-11

positionmanager: Fix docs for get_item_hover_region()

1072. By Rico Tzschichholz on 2014-09-15

filedockitem: Properly compare all separate icons for a single match

Fixes regression of r1038 with gtk+ < 3.13

1073. By Rico Tzschichholz on 2014-07-20

positionmanager: Update the barrier if needed

1074. By Rico Tzschichholz on 2014-09-15

lib: Update symbols

1075. By Rico Tzschichholz on 2014-09-15

Prepare 0.7.0 release

1076. By Rico Tzschichholz on 2014-09-15

Back to development

1077. By Rico Tzschichholz on 2014-09-17

Avoid "using ..." for external dependencies

This has gotten a bit inconsistent so drop those for good and fully
qualify external symbols in all places.

1078. By Rico Tzschichholz on 2014-09-17

Clean up internal "using ..." dependencies

1079. By Rico Tzschichholz on 2014-09-17

positionmanager: Do not allow negative dimensions for the background

1080. By Rico Tzschichholz on 2014-09-17

docktheme: Bail early if there is nothing to draw

1081. By Rico Tzschichholz on 2014-09-17

dockrenderer: No need to have a background if there is none

1082. By Rico Tzschichholz on 2014-09-21

hidemanager: Add missing HAVE_BARRIERS conditional

It is needed to guard all initialize_barriers_support calls.

1083. By Rico Tzschichholz on 2014-09-21

build: Missing the required valac version must be fatal

1084. By Rico Tzschichholz on 2014-09-21

renderer: Fix hide/unhide in non-compositing mode

Regression of r1059

1085. By Rico Tzschichholz on 2014-09-21

hidemanager: Improve build- and runtime-checks for barrier-support

1086. By Rico Tzschichholz on 2014-09-23

Prepare 0.7.1 release

1087. By Rico Tzschichholz on 2014-09-23

Back to development

1088. By Rico Tzschichholz on 2014-09-23

items: Fix DockContainer destructor name

1089. By Rico Tzschichholz on 2014-10-07

Fixing some HiDPI issues

Additionally require cairo >= 1.13 to enable support.
Use Gtk.IconTheme.lookup_icon_for_scale() to pick the proper icon.

1090. By Rico Tzschichholz on 2014-09-14

Add simple settings tool

1091. By Rico Tzschichholz on 2014-10-10

docs: Add missing source references aka "fix the build"

1092. By Rico Tzschichholz on 2014-10-10

build: Really be compatible with gtk+ 3.4

1093. By Rico Tzschichholz on 2014-10-10

Implement (can_)accept_drop() for DockItemProviders and make use of it

1094. By Rico Tzschichholz on 2014-10-11

Fix make check

1095. By Rico Tzschichholz on 2014-10-13

Port AbstractMain to inherit directly from Gtk.Application

1096. By Rico Tzschichholz on 2014-10-14

abstractmain: Set about-dialog as transient for dock-window

1097. By Rico Tzschichholz on 2014-10-14

controller: No need to rebuild settings-dialog if it is already open

1098. By Rico Tzschichholz on 2014-10-14

abstractmain: Stay compatible with gtk+ 3.4

1099. By Rico Tzschichholz on 2014-10-15

Use ActionGroup/ActionMap capabilities to provide global-menu functions

1100. By Rico Tzschichholz on 2014-10-15

items: Drop obsolete controller-argument from get_plank_menu_items()

1101. By Rico Tzschichholz on 2014-10-15

dockwindow: Increase hover-window delay to 200ms

1102. By Rico Tzschichholz on 2014-10-20

position-manager: Clean up and remove unused public API

1103. By Rico Tzschichholz on 2014-10-20

dockwindow: No need to copy since GdkRectangle is a CairoRectangleInt

1104. By Rico Tzschichholz on 2014-10-21

position-manager: Add cached Position of dock and prefer using it

1105. By Rico Tzschichholz on 2014-10-23

dockwindow: Reset ClickedItem after processing the button-release-event

1106. By Rico Tzschichholz on 2014-10-24

dockwindow: Handle propagated mouse-events if menu is visible

Gtk+ 3.14 propagates button-press/release and motion-events further
even while an attached Gtk.Menu is shown. We need to handle those to
restore and preserve the old behaviour.

Reference gtk+ commit:
https://git.gnome.org/browse/gtk+/commit/?id=6b7b55f9b2b9eb7e05f68e9

1107. By Rico Tzschichholz on 2014-10-25

dragmanager: Still allow opening dropped files if LockItems is true

1108. By Rico Tzschichholz on 2014-10-26

abstractmain: Avoid setting empty strings/array

1109. By Rico Tzschichholz on 2014-10-26

build: Preserve compatibility with valac 0.22/24

1110. By Rico Tzschichholz on 2014-10-27

po: Update Finnish, Norwegian Bokmal, Serbian

1111. By Rico Tzschichholz on 2014-11-02

renderer: Fix updating item-positiions in panel-mode

Regression of r1059

1112. By Rico Tzschichholz on 2014-11-04

dragmanager: Accept all supported URIs

1113. By Rico Tzschichholz on 2014-11-04

controller: Fix updating item-positions in panel-mode

1114. By Rico Tzschichholz on 2014-11-04

data: Update manpage

1115. By Rico Tzschichholz on 2014-11-04

build: Rely on new-dtags support to replace RPATH with RUNPATH

1116. By Rico Tzschichholz on 2014-11-12

abstractmain: Add command-line option to show preferences dialog

1117. By Rico Tzschichholz on 2014-11-13

lib: Various optimizations

1118. By Rico Tzschichholz on 2014-11-13

lib: Add more checks for wnck-related null-values

1119. By Rico Tzschichholz on 2014-11-14

dockitemprovider: Add item_for_uri()

1120. By Rico Tzschichholz on 2014-11-17

lib: Explicitly move some field initalizers to construct

1121. By Rico Tzschichholz on 2014-11-17

appddockitemprovider: Fix gee assert caused by handle_name_owner_changed

Don't expect more item matches after one was already found and bail.
There is only one match possible and remove_item() obviously changes the
internal_items list which is iterated in this scope.

1122. By Rico Tzschichholz on 2014-11-18

dockcontainer: Reuse retrieved index and add additional argument check

1123. By Rico Tzschichholz on 2014-11-18

Only allow DefaultApplicationDockItemProvider to handle unpinned apps

Don't expose this property and completely handle it internal.

1124. By Rico Tzschichholz on 2014-11-18

Do not allow multiple dockitems pointing to the same application/launcher

1125. By Rico Tzschichholz on 2014-11-19

appdockitem: Fix nasty typo in get_menu_items()

1126. By Rico Tzschichholz on 2014-11-19

dockitem: Handle null-return of DrawingService.load_icon_for_scale()

1127. By Rico Tzschichholz on 2014-11-19

Fallback on "application-default-icon" icon only or use internal default

Also Wnck is returning its default window-icon ignore it and use the our
fallback chain instead.

1128. By Rico Tzschichholz on 2014-11-20

Add missing Cairo.Context.close_path() calls in conjunction to move_to()

1129. By Rico Tzschichholz on 2014-11-20

hidemanager: Don't hide while obstructed by one of our dialogs/windows

1130. By Rico Tzschichholz on 2014-11-21

hidemanager: Use posix's getpid() to avoid bumping glib

1131. By Rico Tzschichholz on 2014-11-26

itemfactory: Do not allow multiple dockitems pointing to same launcher

Same as r1124

1132. By Rico Tzschichholz on 2014-11-27

positionmanager: No need for return-values for DockItemDrawValue-methods

1133. By Rico Tzschichholz on 2014-12-02

lib: Handle DesktopAppInfo constructors returning NULL

1134. By Rico Tzschichholz on 2014-12-13

appdockitem: Show window-list and use "Close All" for more than one window

1135. By Rico Tzschichholz on 2014-12-16

theme: Add special theme "Gtk+" which looks in the currently selected gtk-theme

1136. By Rico Tzschichholz on 2014-12-16

po: Update translations

1137. By Rico Tzschichholz on 2014-12-22

plank.pc: Add missing dependency on libbamf3

1138. By Rico Tzschichholz on 2014-12-22

plank.pc: Add pkgdatadir

1139. By Rico Tzschichholz on 2014-12-22

lib: Add FileDockItem.with_file() and expose OwnedFile

1140. By Rico Tzschichholz on 2014-12-23

lib: Fix FileDockItem's constructors

1141. By Rico Tzschichholz on 2014-12-30

renderer: Use selected-focused background-color from current gtk+ theme

1142. By Rico Tzschichholz on 2014-12-30

theme: Avoid depending on initialized AbstractMain implementation

1143. By Rico Tzschichholz on 2014-12-31

appdockitem: Always reset App when "closed" was signaled

1144. By Rico Tzschichholz on 2015-01-02

po: Update translations

1145. By Rico Tzschichholz on 2015-01-02

appdockitem: Fix warning and handle RegexError

1146. By Rico Tzschichholz on 2015-01-02

Prepare 0.8.0 release

1147. By Rico Tzschichholz on 2015-01-02

Back to development

1148. By Rico Tzschichholz on 2015-01-04

lib: Update symbols

1149. By Rico Tzschichholz on 2015-01-04

po: Update translation template

1150. By Rico Tzschichholz on 2015-01-04

Welcome to 2015

1151. By Rico Tzschichholz on 2015-01-05

renderer: Fix benchmark build

1152. By Rico Tzschichholz on 2015-01-06

Move plank.gresource.xml to data

1153. By Rico Tzschichholz on 2015-01-06

prefswindow: Fix some sensitivity assignments

1154. By Rico Tzschichholz on 2015-01-13

abstractmain: Output information for more enabled features

1155. By Rico Tzschichholz on 2015-01-15

po: Update translations

1156. By Rico Tzschichholz on 2015-01-17

hidemanager: Fix enable/disable pressure-reveal on runtime

1157. By Rico Tzschichholz on 2015-01-17

hidemanager: Fix valac warning

1158. By Rico Tzschichholz on 2015-01-18

dockwindow: Fix menu-position with gtk+ 3.15+

1159. By Rico Tzschichholz on 2015-01-18

dockwindow: Mark a few more workarounds as such

1160. By Rico Tzschichholz on 2015-01-18

dockwindow: Clean up some API

1161. By Rico Tzschichholz on 2015-01-20

Fix broken virtual LauncherEntry-items

Regression of r1057

1162. By Rico Tzschichholz on 2015-01-20

positionmanager: Alignment should have same meaning for dock and items

START and END were treated differently resulting in a contradicting
settings-behaviour of Aligment and ItemsAlignment

1163. By Rico Tzschichholz on 2015-01-20

build: Request gee-0.8 without an automatic fallback to gee-1.0

1164. By Rico Tzschichholz on 2015-01-21

build: Compatibility for BSD, use replacement for sys/prctl.h

1165. By Rico Tzschichholz on 2015-01-21

Make use of Gdk.EVENT_PROPAGATE and Gdk.EVENT_STOP

1166. By Rico Tzschichholz on 2015-01-25

po: Update translations

1167. By Rico Tzschichholz on 2015-01-25

Prepare 0.8.1 release

1168. By Rico Tzschichholz on 2015-01-25

Back to development

1169. By Rico Tzschichholz on 2015-01-26

dockitem: Fix warning while building non-HiDPI

1170. By Rico Tzschichholz on 2015-01-21

renderer: Redo final drawing to untangle the different layers

Adds additional drawing operations and therefore slows things down a bit.

1171. By Rico Tzschichholz on 2015-01-22

drawing: Add standard set of easing-functions

1172. By Rico Tzschichholz on 2015-01-26

Add add/remove animations for dock-items

1173. By Rico Tzschichholz on 2015-01-26

theme: Increase default ItemMoveTime to 450ms

1174. By Rico Tzschichholz on 2015-01-27

renderer: Don't try to draw shadows-layer too early

1175. By Rico Tzschichholz on 2015-01-27

renderer: Refactor and split up draw_item()

Add draw_item_shadow() and get_animated_draw_value_for_item() for better
separation of drawing and position-calculation.

1176. By Rico Tzschichholz on 2015-01-28

windowcontrol: Try to trap some XErrors caused by Wnck/Cairo

1177. By Rico Tzschichholz on 2015-01-28

dockwindow: Update according to Gtk.MenuPositionFunc signature fix

1178. By Rico Tzschichholz on 2015-01-29

data: Optimize application-default-icon.svg

scour --enable-viewboxing --enable-id-stripping --create-groups
  --shorten-ids --enable-id-stripping --enable-comment-stripping
  --disable-embed-rasters --remove-metadata --strip-xml-prolog -p 9

1179. By Rico Tzschichholz on 2015-01-29

data: Replace poof.png with newly created poof.svg, Thanks to Daniel Foré

1180. By Rico Tzschichholz on 2015-02-02

Add hide-delay setting

1181. By Rico Tzschichholz on 2015-02-08

drawing: Make easing_for_mode more robust and document it

1182. By Rico Tzschichholz on 2015-02-12

items: Add boolean return-value to public DockContainer/-Provider methods

This will indicate the success or failure of the corresponding operation.

1183. By Rico Tzschichholz on 2015-02-21

items: Avoid removal-delay when unpinning an application

Remove an AppDockItem if it doesn't represent a running application and
doesn't have visible remote-info coming via LauncherEntry.

1184. By Rico Tzschichholz on 2015-02-27

po: Update translations

1185. By Rico Tzschichholz on 2015-03-11

items: It is an ApplicationDockItem, no need to use "as"

1186. By Rico Tzschichholz on 2015-03-11

renderer: Draw final internal dock-buffer on window-context at (0,0)

1187. By Rico Tzschichholz on 2015-03-11

build: Make "distcheck" work independent from originally passed confflags

1188. By Rico Tzschichholz on 2015-03-11

dockwindow: Drop hack for menu-position with gtk+ 3.15+

Reverts r1158

1189. By Rico Tzschichholz on 2015-03-12

hidemanager: Add window-dodge hide-mode

1190. By Rico Tzschichholz on 2015-03-15

po: Update translations

1191. By Rico Tzschichholz on 2015-03-16

item: Rename protected arraylist-fields *_items to *_elements

1192. By Rico Tzschichholz on 2015-03-16

dockcontainer: Rename property Elements to VisibleElements

1193. By Rico Tzschichholz on 2015-03-16

controller: Rename property Items to VisibleItems

1194. By Rico Tzschichholz on 2015-03-16

controller: Add Items property

Which actually returns a list of all items regardless their visibility.

1195. By Rico Tzschichholz on 2015-03-16

controller: Call update_items while replacing default_provider

1196. By Rico Tzschichholz on 2015-03-16

Update symbols

1197. By Rico Tzschichholz on 2015-03-16

Add DBusManager to provide some useful remotely accessible actions

Provide "net.launchpad.plank.Items" interface with "Add", "Remove",
"GetCount", "GetPersistentApplications" and "GetTransientApplications"
methods.

1198. By Rico Tzschichholz on 2015-03-18

dbus/client: Keep compatiblity with glib 2.32

1199. By Rico Tzschichholz on 2015-03-18

abstractmain: Additionally output buildtime versions of glib and gtk+

1200. By Rico Tzschichholz on 2015-03-23

renderer: Fix background drawing position for panel-mode

Regression of r1186

1201. By Rico Tzschichholz on 2015-03-23

po: Update translations

1202. By Rico Tzschichholz on 2015-03-24

dragmanager: Cache "Internal"-surface property

1203. By Rico Tzschichholz on 2015-03-24

dockwindow: Do not stop motion-events by default

This fixes fastly-rearranging icon which causes the mouse-cursor leaving
the drag-window, so the dockwindow caught and killed the motion-event.

1204. By Rico Tzschichholz on 2015-03-25

element: Rename IsVisible to IsAttached

This matches its function better.

1205. By Rico Tzschichholz on 2015-03-25

element: Add "IsVisible" which *only* controls whether to draw the item

1206. By Rico Tzschichholz on 2015-03-25

renderer: Do not animate item if it got removed with drag'n'drop

1207. By Rico Tzschichholz on 2015-03-28

dockitem: Make "handle_deleted" private

1208. By Rico Tzschichholz on 2015-03-28

dragmanager: Use Gtk.drag_set_icon_default as fallback

1209. By Rico Tzschichholz on 2015-03-29

po: Update translations

1210. By Rico Tzschichholz on 2015-03-29

hidemanager: Refactor internal API

1211. By Rico Tzschichholz on 2015-03-30

drawingservice: Add support for loading icons with "resource://"-uris

1212. By Rico Tzschichholz on 2015-03-30

Update symbols

1213. By Rico Tzschichholz on 2015-03-30

drawingservice: Do not break case-sensitivity, fix for r1211

1214. By Rico Tzschichholz on 2015-03-27

items: Generally watch for changes of the "Launcher"-file

This unifies the filemonitor implementations of ApplicationDockItem and
FileDockItem and moves it into DockItem.

1215. By Rico Tzschichholz on 2015-03-30

defaultappprovider: Only listen to Wnck-signals if necessary

1216. By Rico Tzschichholz on 2015-03-31

dockwindow: Push logic to determine menu-type into show_menu()

1217. By Rico Tzschichholz on 2015-03-31

dockwindow: Fix behavior of "special" dock-menu

The dock-menu was instantly hidden on button-release if it got
triggered on an empty area on dock.

1218. By Rico Tzschichholz on 2015-04-01

po: Update translations

1219. By Rico Tzschichholz on 2015-04-01

Update symbols

1220. By Rico Tzschichholz on 2015-04-03

Refactor dealing with monitor-/size-changes to catch races-conditions

Remove delayed handling in favor of dropping superfluous triggering.
Remember the requested window position in case get_position() can't
return the correct values.

1221. By Rico Tzschichholz on 2015-04-04

prefs: Save display-plug-name as Monitor which dock should be shown on

1222. By Rico Tzschichholz on 2015-04-06

tests: Compare lowlevel pixdata to determine equality

1223. By Rico Tzschichholz on 2015-04-06

tests: Add more DockTheme tests

1224. By Rico Tzschichholz on 2015-04-06

docktheme/draw_item_progress: Restrict progress to <= 1.0

1225. By Rico Tzschichholz on 2015-04-06

positionmanager: Fix -Wreturn-type

1226. By Rico Tzschichholz on 2015-04-06

hidemanager: Avoid copying "mask_bits" array

1227. By Rico Tzschichholz on 2015-04-07

positionmanager/get_monitor_plug_names: Returning an array is good enough

1228. By Rico Tzschichholz on 2015-04-07

theme/get_theme_list: Returning an array is good enough

1229. By Rico Tzschichholz on 2015-04-07

tests: Complete DockSurface coverage

1230. By Rico Tzschichholz on 2015-04-07

tests: Increase Dock-/Theme coverage

1231. By Rico Tzschichholz on 2015-04-07

color: Fix naming of "set_min_val"

1232. By Rico Tzschichholz on 2015-04-07

tests: Increase Color coverage

1233. By Rico Tzschichholz on 2015-04-07

tests: Check Drawing.easing_for_mode

1234. By Rico Tzschichholz on 2015-04-07

tests: Increase DrawingService coverage

1235. By Rico Tzschichholz on 2015-04-07

tests: Check HoverWindow and PreferencesWindow

1236. By Rico Tzschichholz on 2015-04-08

prefs: Mention "window-dodge" hide-mode

1237. By Rico Tzschichholz on 2015-04-08

renderer: Synchronize resetting buffers and position-manager

Avoid races on e.g. changing theme. The bargain is a more expensive
update for Offset/Alignments changes.

1238. By Rico Tzschichholz on 2015-04-08

po: Update translations

1239. By Rico Tzschichholz on 2015-04-08

build: Add support for coverage analysis using gcov and lcov

Based on https://launchpad.net/coverage-tutorial by "Allan LeSage"

1240. By Rico Tzschichholz on 2015-04-08

m4: Update gcov.m4

1241. By Rico Tzschichholz on 2015-04-08

positionmanager: Add replacement string if get_monitor_plug_name is null

1242. By Rico Tzschichholz on 2015-04-08

tests: Split startup-test into "dock" binary and run it separately

1243. By Rico Tzschichholz on 2015-04-09

Update email contacts

1244. By Rico Tzschichholz on 2015-04-09

theme: State the extended influence of ItemMoveTime

1245. By Rico Tzschichholz on 2015-04-10

themes: Refresh "Default" for comment-changes

1246. By Rico Tzschichholz on 2015-04-10

dockwindow: Reverse ordering of menu-items for top-docks

Ease the access of more important items for this case.

1247. By Rico Tzschichholz on 2015-04-10

lib: Make the Preferences menu-item visible in Pantheon too

1248. By Rico Tzschichholz on 2015-04-10

Update symbols

1249. By Rico Tzschichholz on 2015-04-10

Add some hidden menu-items for easier debugging

1250. By Rico Tzschichholz on 2015-04-10

dockwindow: Fix build with gee-1.0

1251. By Rico Tzschichholz on 2015-04-12

coverage-html: Make sure to reference files located in builddir

1252. By Rico Tzschichholz on 2015-04-12

Prepare 0.9.0 release

1253. By Rico Tzschichholz on 2015-04-12

Back to development

1254. By Rico Tzschichholz on 2015-04-19

src: Initialize i18n as suggested

1255. By Rico Tzschichholz on 2015-04-20

vapi: Add libbamf3.deps

1256. By Rico Tzschichholz on 2015-04-20

HACKING: Mention ppa:docky-core/stable containing release builds

1257. By Rico Tzschichholz on 2015-04-20

po: Update translations

1258. By Rico Tzschichholz on 2015-04-21

renderer: Make sure to unhide the dock on login when there are no windows

After transparently filling window on start-up make sure to force a
redraw and a following unhide animation.

1259. By Rico Tzschichholz on 2015-04-24

controller: launchers_folder is not a public/construct property

1260. By Rico Tzschichholz on 2015-04-24

lib: Explictly request/specify the FileMonitor-type which is needed

1261. By Rico Tzschichholz on 2015-04-27

po: Update translations

1262. By Rico Tzschichholz on 2015-04-27

The 'This file is part of Plank' commit

Add references to 'Plank' in copyright-headers where possible.

1263. By Rico Tzschichholz on 2015-04-27

Add LGPL v2.1 for "TitledSeparatorMenuItem.vala"

1264. By Rico Tzschichholz on 2015-04-28

Use Cairo.Operator.CLEAR instead of Cairo.Operator.SOURCE/set_source_rgba

1265. By Rico Tzschichholz on 2015-04-28

docksurface: Cache "Context" property

1266. By Rico Tzschichholz on 2015-04-28

defaultprovider: Use add_items instead of add_item_without_signaling

1267. By Rico Tzschichholz on 2015-04-28

dockcontainer: Synchronize Add-/RemoveTime with existing child-items

1268. By Rico Tzschichholz on 2015-04-28

renderer: Don't add-animate an item if its container got added later

E.g. this avoids animating *all* items on startup.

1269. By Rico Tzschichholz on 2015-04-30

renderer: Split-out item_animation_needed()

1270. By Rico Tzschichholz on 2015-04-30

dragmanager: Tweak internal callbacks

1271. By Rico Tzschichholz on 2015-04-30

renderer: Fix typos in documentation

1272. By Rico Tzschichholz on 2015-05-01

dockelement: Use Gdk.BUTTON_* constants

1273. By Rico Tzschichholz on 2015-05-01

dockitem: Start icon-file-monitor as soon as possible if needed

1274. By Rico Tzschichholz on 2015-05-02

Prepare 0.9.1 release

1275. By Rico Tzschichholz on 2015-05-02

Back to development

1276. By Rico Tzschichholz on 2015-05-06

poofwindow: Retrieve size and frame-count from given animation-file

1277. By Daniel Fore on 2015-05-06

data: New and more detailed poof animation with 8 frames

1278. By Rico Tzschichholz on 2015-05-07

items: Collect item-related enums in their own source-file

1279. By Rico Tzschichholz on 2015-05-07

dockcontainer: Add prepend_item()

1280. By Rico Tzschichholz on 2015-05-07

Allow DockItems to be added to the DockController directly

1281. By Rico Tzschichholz on 2015-05-07

Make "Item for Dock" really special and add setting to show/hide it

1282. By Rico Tzschichholz on 2015-05-07

items: Refactor public API to reflect its generality

1283. By Rico Tzschichholz on 2015-05-08

Automatically remove invalid items and their corresponding dockitem-file

Additionally to the validity check of dockitem-files invalid one will be
deleted. On runtime indicate broken-items and remove them after 3 seconds
without further actions needed.

1284. By Rico Tzschichholz on 2015-05-09

items: Pass-through the event_time of click/scroll events if available

This will result in passing proper timestamps to Wnck-based calls.

1285. By Rico Tzschichholz on 2015-05-13

renderer: Make hide-animation non-linear and default to 250ms

1286. By Rico Tzschichholz on 2015-05-16

drawing: Small optimization in ar_scale()

1287. By Rico Tzschichholz on 2015-05-16

docksurface: Cache kernel[k] in gaussian_blur_*

1288. By Rico Tzschichholz on 2015-05-17

logger: Adjust LogLevel-naming, ERROR -> CRITICAL and FATAL -> ERROR

1289. By Rico Tzschichholz on 2015-05-17

items: Make DockItem abstract

1290. By Rico Tzschichholz on 2015-05-18

dockitem: Use dedicated callback to handle icon-file-changes

1291. By Rico Tzschichholz on 2015-05-25

controller: No need to specialize default-provider as AppDockItemProvider

1292. By Rico Tzschichholz on 2015-05-25

preferences: GLib.File.replace() is creating non-existing files already

1293. By Rico Tzschichholz on 2015-05-26

lib: Simplify initialization of some structs

"var f = Foo ()" will cause a superfluous memset.
"Foo f = {0}" will additionally set the first field (if it is an integer)
and doesn't translate to C-equivalent.

1294. By Rico Tzschichholz on 2015-05-26

positionmanager: Use Gdk.Rectangle.union()

This additionally catches the case where first_rect is actually located
on the "right" of last_rect.

1295. By Rico Tzschichholz on 2015-05-26

po: Update translations

1296. By Rico Tzschichholz on 2015-05-27

theme: Small clean up of draw_background()

1297. By Rico Tzschichholz on 2015-05-30

build: Fix autoconf warning about ignoring --datarootdir

1298. By Rico Tzschichholz on 2015-06-03

po: Update translations

1299. By Rico Tzschichholz on 2015-06-03

services: Add ThreadPool-based Worker to run tasks without blocking GUI

1300. By Rico Tzschichholz on 2015-06-03

filedockitem: Use Worker to load and draw file-icons for pinned folders

1301. By Rico Tzschichholz on 2015-06-04

dragmanager: Update drag-icon if the drag-item's icon got changed

1302. By Rico Tzschichholz on 2015-06-04

worker: Add asynchronous add_task_with_result()

1303. By Rico Tzschichholz on 2015-06-04

items: Use threaded icon-drawing for all item and add draw_icon_fast()

Makes use of Worker.add_task_with_result().

Prevent foreground and background drawing until the final icon is done.

draw_icon_fast() will be used before the real icon is ready.
It allows items to draw a specific shape for a smoother transitions
between placeholder and final icon.

1304. By Rico Tzschichholz on 2015-06-04

abstractmain: Force "deep" initializtion of Gtk.IconTheme early

1305. By Rico Tzschichholz on 2015-06-04

abstractmain: Bail early if this is not running in a X11 session

1306. By Rico Tzschichholz on 2015-06-04

Update symbols

1307. By Rico Tzschichholz on 2015-06-04

build: Fix docs build

1308. By Rico Tzschichholz on 2015-06-05

worker: Schedule async-callback with priority HIGH_IDLE

1309. By Rico Tzschichholz on 2015-06-05

dockitem: Rework threaded-drawing of internal surface

1310. By Rico Tzschichholz on 2015-06-07

drawing: Use Gtk.IconTheme in a thread-safe way

1311. By Rico Tzschichholz on 2015-06-08

lib: Avoid some superfluous string-copying

1312. By Rico Tzschichholz on 2015-06-08

dockitem: Add the "surface == null" surface-status

1313. By Rico Tzschichholz on 2015-06-08

logger: Partial rewrite, with strip down to the "nearly" bare minimum

1314. By Rico Tzschichholz on 2015-06-08

worker: Make ThreadPool non-exclusive and use GLib.get_num_processors()

1315. By Rico Tzschichholz on 2015-06-08

filedockitem: Drop unused code

1316. By Rico Tzschichholz on 2015-06-08

build: Fix make distcheck

1317. By Rico Tzschichholz on 2015-06-09

drawingservice: Use string-array directly and don't copy to Gee.ArrayList

1318. By Rico Tzschichholz on 2015-06-10

po: Update translations

1319. By Rico Tzschichholz on 2015-06-10

src: Use more reasonable class-name and namespace-structure

1320. By Rico Tzschichholz on 2015-06-10

renderer: Schedule unhide-on-start callback "as late as possible"

1321. By Rico Tzschichholz on 2015-06-10

dockitem: Schedule icon-theme-changed callback "as late as possible"

1322. By Rico Tzschichholz on 2015-06-10

drawingservice: Make icon_theme creation thread-safe

1323. By Rico Tzschichholz on 2015-06-10

renderer: Move frame-time handling into AnimatedRenderer

Make AnimatedRenderer-class responsible to perform and schedule redraws.

1324. By Rico Tzschichholz on 2015-06-10

animatedrenderer: Use Gdk.FrameClock to determine frame-time

Conditionally use Gdk.FrameClock if Gtk+ >= 3.8 is available

1325. By Rico Tzschichholz on 2015-06-10

Revert "items: Use threaded icon-drawing for all items"

Too unstable for being usable!

1326. By Rico Tzschichholz on 2015-06-11

Add RTL support and enable it depending on the locale setting

Reverse items placement.
Mirror position for vertical docks.
Invert alignments for horizonzal docks.
Mirror badge and progress-bar.

1327. By Rico Tzschichholz on 2015-06-17

po: Update translations

1328. By Rico Tzschichholz on 2015-06-27

animatedrenderer: Always initialize frame if a redraw is scheduled

1329. By Rico Tzschichholz on 2015-06-27

po: Update translations

1330. By Rico Tzschichholz on 2015-07-03

dockrenderer: Guard duration-calculations which are used for animations

1331. By Rico Tzschichholz on 2015-07-06

Update symbols

1332. By Rico Tzschichholz on 2015-07-09

color: Avoid double setting of out-vars in hsv_to_rgb

1333. By Rico Tzschichholz on 2015-07-09

color: Clarify documention of set_min/max_* methods

1334. By Rico Tzschichholz on 2015-07-09

hidemanager: Add dodge-active hide-mode

1335. By Rico Tzschichholz on 2015-07-12

prefswindow: Use Gtk.Stack if available

1336. By Rico Tzschichholz on 2015-06-14

build: Drop dependency on gnome-common

1337. By Rico Tzschichholz on 2015-07-12

prefswindow: Allow closing the window using "Escape"

1338. By Rico Tzschichholz on 2015-07-12

po: Update translations

1339. By Rico Tzschichholz on 2015-07-12

ui: Tweak minimum gtk+ version for conditional 3.4 support

1340. By Rico Tzschichholz on 2015-07-15

build: Make sure to enable maintainer-mode by default

1341. By Rico Tzschichholz on 2015-06-27

Add icon-zoom preferences and expose gui-settings

1342. By Rico Tzschichholz on 2015-07-02

Add optional zoom animation when hovering dock-items

1343. By Rico Tzschichholz on 2015-07-16

Add ability to cache multiple sizes of drawn items

1344. By Rico Tzschichholz on 2015-07-16

Update symbols

1345. By Rico Tzschichholz on 2015-07-16

po: Update translation template

1346. By Rico Tzschichholz on 2015-07-16

surfacecache: Add missing mutex-unlock

1347. By Rico Tzschichholz on 2015-07-20

po: Update translations

1348. By Rico Tzschichholz on 2015-07-20

lib: Make sure to bind "plank" textdomain for library users

1349. By Rico Tzschichholz on 2015-07-20

lib: Replace non-constant string-concatenation with string.printf()

1350. By Rico Tzschichholz on 2015-07-25

appdockitem: Always indicate running application despite its window-count

1351. By Rico Tzschichholz on 2015-07-25

tests: Add google-mock support

1352. By kay van der Zander on 2015-07-25

gmock: Add tests for Color

1353. By Rico Tzschichholz on 2015-07-28

hidemanager: Rework enter/leave-event handling to determine "Hovered"

This removes handling of send_event and use "Disabled" for visible menu.

1354. By Rico Tzschichholz on 2015-07-28

po: Update translations

1355. By Rico Tzschichholz on 2015-07-28

ui: Fix "Icon Zoom" label spanning

1356. By Rico Tzschichholz on 2015-07-28

dockwindow: Reinstate "handling of send_event" to fix broken internal DnD

Regression of r1353

1357. By Rico Tzschichholz on 2015-07-28

surfacecache: Fix build with gee-1.0

1358. By Rico Tzschichholz on 2015-07-29

dockcontainer: Update element's RemoveTime on add/replace accordingly

1359. By Rico Tzschichholz on 2015-07-30

lib: Commonize naming of fields which are holding handler/timer-ids

Adjust some explictly typed assignments too.

1360. By Rico Tzschichholz on 2015-07-30

dockrenderer: Use animated_draw() and don't listen to HoveredItem changes

1361. By Rico Tzschichholz on 2015-07-30

dockrenderer: Do not forcefully unhide the dock if it already is

If we do it will cause the dock to hide and unhide again on startup.

1362. By Rico Tzschichholz on 2015-07-30

Revert "dockrenderer: Use animated_draw() and don't listen to HoveredItem changes"

1363. By Rico Tzschichholz on 2015-07-30

positionmanager: Make item's background-region always cover dock's background from bottom up

1364. By Rico Tzschichholz on 2015-08-12

po: Update translations

1365. By Rico Tzschichholz on 2015-08-13

hidemanager: Don't use actual cursor coords of leave-notify-event

If we received a leave-notify-event then don't be silly and make sure
update_hovered_with_coords() will set Hovered to false by passing
(-1, -1).

1366. By Rico Tzschichholz on 2015-08-13

hidemanager: Reinstate "handling of send_event" to avoid confusion with menu

Regression of r1353

1367. By Rico Tzschichholz on 2015-08-14

dockrenderer: Output the Cairo.SurfaceType used by Gtk+

1368. By Rico Tzschichholz on 2015-08-17

positionmanager: Fix background-size calculation with enabled icon-zoom

We need to take the zoomed icon-size into account to properly adjust the
horizontal padding for the background-sizing while differentiating
between first and last item.

1369. By xapantu on 2015-08-19

hidemanager: Ignore pressure-reveal for 'absolute' input-devices

1370. By Rico Tzschichholz on 2015-08-20

dockelement: Make using -Werror=pointer-to-int-cast pass

1371. By Rico Tzschichholz on 2015-08-20

dockwindow: Make using -Werror=unused-result pass

1372. By Rico Tzschichholz on 2015-08-21

dockrenderer: Adjust shadow-size if window-scale-factor > 1 aka HiDPI

1373. By Rico Tzschichholz on 2015-08-22

po: Update translations

1374. By Rico Tzschichholz on 2015-08-23

lib: Cast some callbacks to avoid the creation of wrappers

1375. By Rico Tzschichholz on 2015-08-23

build: Require cairo >= 1.10

1376. By Rico Tzschichholz on 2015-08-23

lib: Cast some callbacks to avoid the creation of wrappers

1377. By Rico Tzschichholz on 2015-08-23

dbusmanager: Fix naming of fields which are holding handler/timer-ids

1378. By Rico Tzschichholz on 2015-08-23

dockrenderer: Avoid usage of Cairo.SurfaceType.COGL

1379. By Rico Tzschichholz on 2015-08-23

build: Clean bamf/gtk+ version check

1380. By Rico Tzschichholz on 2015-08-24

itemfactory: Make get_launcher_from_dockitem() a bit more safer/verbose

1381. By Rico Tzschichholz on 2015-09-03

dockcontainer: Add remove_all()

1382. By Rico Tzschichholz on 2015-09-03

dockrenderer: Guard against empty dock (which ideally won't happen)

1383. By Rico Tzschichholz on 2015-09-03

dockcontroller: Clean out old default-provider after replacing it

1384. By Rico Tzschichholz on 2015-09-03

dockcontainer: Optimize prepend()

1385. By Rico Tzschichholz on 2015-09-07

po: Update translations

1386. By Rico Tzschichholz on 2015-09-07

itemfactory: Avoid a string-copying

1387. By Rico Tzschichholz on 2015-09-07

positionmanager: Demote criticals of get_draw_value_for_item() to debug/warning

1388. By Rico Tzschichholz on 2015-09-07

Prepare 0.10.0 release

1389. By Rico Tzschichholz on 2015-09-07

Back to development

1390. By Mike Gabriel on 2015-09-09

animatedrenderer: Fix typo in error message

1391. By Rico Tzschichholz on 2015-09-10

build: Require valac >= 0.24.0 and obsolete conditionals

1392. By Rico Tzschichholz on 2015-09-16

po: Update translations

1393. By Rico Tzschichholz on 2015-09-28

po: Update translations

1394. By Rico Tzschichholz on 2015-10-01

filedockitem: Correctly display filenames with underscores in folder-menu

1395. By Rico Tzschichholz on 2015-10-01

positionmanager: Just return primary_monitor if empty plug_name was given

1396. By Rico Tzschichholz on 2015-10-01

positionmanager: Add verbose output for monitor_geo_changed

1397. By Rico Tzschichholz on 2015-10-06

dockitemprovider: Insert items where the data was dropped

If there is currently no HoveredItem try to determine the nearest one as
drop-point.

1398. By Rico Tzschichholz on 2015-10-07

lib: Tweak method signature of file-monitor callbacks

1399. By Rico Tzschichholz on 2015-10-07

lib: FileMonitorEvent is a simple enum not a flag

1400. By Rico Tzschichholz on 2015-10-07

lib: Avoid some superfluous reference-taking

1401. By Rico Tzschichholz on 2015-10-07

plankdockitem: Open "preferences" on left-click instead of "about"

1402. By Rico Tzschichholz on 2015-10-08

defaultappprovider: Don't ignore opened applications if Wnck doesn't know

Better don't rely on Wnck if Bamf reported an opened application. If an
application is for whatever reason replacing or renaming its window on
startup we might drop it while Wnck reports a window-count of 0.

1403. By Rico Tzschichholz on 2015-10-08

transientdockitem: Delayed reloading of the window-icon if needed

If the window-icon was null on the first try then schedule a 2nd one.

1404. By Rico Tzschichholz on 2015-10-09

lib: Actually pass e.g. -lm to the linker by adding it to *_LIBADD

1405. By Rico Tzschichholz on 2015-10-09

po: Update translations

1406. By Rico Tzschichholz on 2015-10-09

Prepare 0.10.1 release

1407. By Rico Tzschichholz on 2015-10-19

Back to development

1408. By Rico Tzschichholz on 2015-10-19

build: Be more rebust for parallel building

1409. By Rico Tzschichholz on 2015-10-19

dockrenderer: Don't request a redraw if "transient_items" is empty

1410. By Rico Tzschichholz on 2015-10-31

dockrenderer: Use non-linear transition in/out the "zoom" state

Increase transition-time to 200ms and use cubic-easing.

1411. By Rico Tzschichholz on 2015-10-31

easing: Some optimization, avoid vala's struct-copying by using pointers

1412. By Rico Tzschichholz on 2015-10-31

build: Be more rebust for parallel building

1413. By Rico Tzschichholz on 2015-11-01

easing: Use proper codestyle for ANIMATION_MODES while it is a const

1414. By Rico Tzschichholz on 2015-11-01

dockrenderer: Factor out jump-calculation into easing_bounce

1415. By Rico Tzschichholz on 2015-11-01

dockrenderer: Define and use some internal constants

1416. By Rico Tzschichholz on 2015-11-02

po: Update translations

1417. By Rico Tzschichholz on 2015-11-02

Add docklets support (internal/private)

Based on initially proposed docky 3.0 branch

1418. By Rico Tzschichholz on 2015-11-02

Add GSettings support and transition DockPreferences to it

1419. By Rico Tzschichholz on 2015-11-02

Update symbols

1420. By Rico Tzschichholz on 2015-11-02

po: Don't translate gschema for now

1421. By Rico Tzschichholz on 2015-11-03

Drop nested namespaces

1422. By Rico Tzschichholz on 2015-11-03

Rename DockSurface to Surface

1423. By Rico Tzschichholz on 2015-11-03

Rename AnimatedRenderer to Renderer

1424. By Rico Tzschichholz on 2015-11-03

build: Bump api and library version

1425. By Rico Tzschichholz on 2015-11-03

Keep existing theme and dockitem-files working and update them

1426. By Rico Tzschichholz on 2015-11-03

Update NEWS

1427. By Rico Tzschichholz on 2015-11-03

dockitem: Remove merge-conflict cruft

1428. By Daniel Fore on 2015-11-05

data: Improve strings of GSettings schema

1429. By Rico Tzschichholz on 2015-01-19

system: Refactor to stateful class and use common AppLaunchContext

1430. By Rico Tzschichholz on 2015-11-07

settings: Use unowned var and avoid ref'ing in loop

1431. By Rico Tzschichholz on 2015-11-06

docklets: Move to public API

1432. By Rico Tzschichholz on 2015-11-07

docklets: Make Docklet an interface and do follow up changes

1433. By Rico Tzschichholz on 2015-11-08

Add non-functional docklets-gui

1434. By Rico Tzschichholz on 2015-11-08

docs: Fix build

1435. By Rico Tzschichholz on 2015-11-08

build: Fix make distcheck

1436. By Rico Tzschichholz on 2015-11-08

tests: Set PLANK_DOCKLET_DIRS to docklets builddir for test-environment

1437. By Rico Tzschichholz on 2015-11-08

build: Add "run" target for conveniently running plank uninstalled

So running "make run" from the top_builddir will start the just built
plank with the required environment variables to actually pick things up
from the current builddir.

1438. By Rico Tzschichholz on 2015-11-10

services: Don't leak array-container of ObjectClass.list_properties()

ObjectClass.list_properties() transfers the container which needs to be
freed. If valac 0.26 is availble this can be managed.

1439. By Rico Tzschichholz on 2015-11-10

preferences: Cache various strings to avoid retrieving them several times

1440. By Rico Tzschichholz on 2015-11-10

settings: Cache class-type-name string

1441. By Rico Tzschichholz on 2015-11-10

tests: Make sure to use "test1" as dock-name

1442. By Rico Tzschichholz on 2015-11-11

dockitem: Don't leak array-container of ObjectClass.list_properties()

1443. By Rico Tzschichholz on 2015-11-14

Add methods to check some desktop environment types

1444. By Rico Tzschichholz on 2015-11-14

trash: Implement perform_empty_trash()

Only try using Nautilus on "GNOME" and "Unity" enviroments

1445. By Rico Tzschichholz on 2015-11-16

theme: Add "CascadeHide" option

If true it will cause background and icons to unhide/hide with different
speeds so they will leave/hit the screen-edge at the same time.

1446. By Rico Tzschichholz on 2015-11-19

po: Update translations

1447. By Rico Tzschichholz on 2015-11-19

dragmanager: Don't grab input and abort this drag if DragItem is null

1448. By Rico Tzschichholz on 2015-11-30

dockwindow: Be more persuasive to get the window where is should be

1449. By Rico Tzschichholz on 2015-12-02

po: Update translations

1450. By Rico Tzschichholz on 2015-12-04

Use fixed ObjectClass.list_properties() of valac 0.31/32 if available

1451. By Rico Tzschichholz on 2015-12-05

dockitem: Actually use internal constant ITEM_INVALID_DURATION

1452. By Rico Tzschichholz on 2015-12-05

po: Make use of "translator-credits" for Gtk.AboutDialog

1453. By Rico Tzschichholz on 2015-12-06

po: Update translations

1454. By Rico Tzschichholz on 2015-12-07

lib: Add internal compatibility wrapper for gtk+ 3.19.1+

1455. By Rico Tzschichholz on 2015-12-07

widgets: Adjust custom widgets for gtk+ 3.19.1+

1456. By Rico Tzschichholz on 2015-12-07

theme: Create and use custom Gtk.StyleContext

1457. By Rico Tzschichholz on 2015-12-07

dragmanager: Better handling if the actual selection-data is null

1458. By Rico Tzschichholz on 2015-12-07

dockitem: Only use file-monitor for "file://"-icon-files

1459. By Rico Tzschichholz on 2015-12-07

build: Add "run-debug" target for running plank uninstalled within gdb

1460. By Rico Tzschichholz on 2015-12-08

lib: Move HoverWindow instance into DockController

1461. By Rico Tzschichholz on 2015-12-09

dragmanager: Show descriptive tooltip on external-dnd actions

1462. By Rico Tzschichholz on 2015-12-09

dragmanager: desktop-files are special and deserve the drop-to-dock text

1463. By Rico Tzschichholz on 2015-12-11

po: Update translations

1464. By Rico Tzschichholz on 2015-12-11

po: Update translations

1465. By Rico Tzschichholz on 2015-12-22

data: Update appdata to 0.6+ format

1466. By Rico Tzschichholz on 2015-12-22

appdata: Make "summary" translatable, re-use tweaked desktop-file comment

1467. By Rico Tzschichholz on 2015-12-22

po: Update translations

1468. By Rico Tzschichholz on 2016-01-02

Welcome to 2016

1469. By Rico Tzschichholz on 2016-01-03

Use clamp() instead of min(max())

1470. By Rico Tzschichholz on 2016-01-03

dockpreferences: No need to notify about external changes of DockItems

1471. By Rico Tzschichholz on 2016-01-03

dockcontroller: Serialize possible DockItems change on start-up

1472. By Rico Tzschichholz on 2016-01-03

dockcontroller: Fix r1471 and actually save DockItems change on start-up

1473. By Rico Tzschichholz on 2016-01-04

color: Fix mess-up of r1469

1474. By Rico Tzschichholz on 2016-01-04

filedockitem: Hide "Keep in Dock" wile LockItems is enabled

1475. By Rico Tzschichholz on 2016-01-05

po: Update translations

1476. By Rico Tzschichholz on 2016-01-06

dockrenderer: Don't apply window-scale-factor twice on foreground-icon-size

Regression of r1343

1477. By Rico Tzschichholz on 2016-01-07

applicationdockitem: Check LauncherEntry values for actual changes

Also restrict the precision of "progress".

1478. By Rico Tzschichholz on 2016-01-07

items: Reduce redraw requests on LauncherEntry updates

1479. By Rico Tzschichholz on 2016-01-07

items: Fix build without dbusmenu-glib

1480. By Rico Tzschichholz on 2016-01-07

unity: Handle bad LauncherAPI clients which have an insane update-rate

Skip/hold requests if they are arriving within a defined threshold of
32ms after the previous one.

This avoids plank to freeze while not being able to handle all requests.

1481. By Rico Tzschichholz on 2016-01-09

positionmanager: Expand dock on external-drag without enabled zoom too

Also try harder to insert dropped elements at the actually desired spot.

1482. By Rico Tzschichholz on 2016-01-14

unity: Allow a specific amount of fast-updates before skipping/delaying

Cope with applications which are firing update-requests for multiple
application-uris at the same time.

1483. By Rico Tzschichholz on 2016-01-14

Revert "dockpreferences: No need to notify about external changes of DockItems"

This breaks GLib.Settings.bind() so that DockItems never get saved.

1484. By Rico Tzschichholz on 2016-01-14

Allow and handle uris with "docklet" scheme

1485. By Rico Tzschichholz on 2016-01-14

tests: Drop PreferencesWindow test

1486. By Rico Tzschichholz on 2016-01-14

Add some functionality to docklets GUI

Drag'n'drop or double-click a docklet to add it.

1487. By Rico Tzschichholz on 2016-01-14

settings: Must take reference of matched ParamSpec

Not doing so results in an undefined behaviour while things ran out of
scope when calling GSettings.bind().

This reverts r1430

1488. By Rico Tzschichholz on 2016-01-14

build: Fix gtk+-3.0 < 3.10 (non-HiDPI)

1489. By Rico Tzschichholz on 2016-01-26

preferenceswindow: Allow changing the backing DockController

1490. By Rico Tzschichholz on 2016-01-30

unity: Expose API to handle LauncherEntry DBus clients

1491. By Rico Tzschichholz on 2016-01-30

po: Update translations

1492. By Rico Tzschichholz on 2016-01-30

Cast callbacks to GLib.SourceFunc where possible

1493. By Rico Tzschichholz on 2016-01-16

WIP Add zeitgeist support for adding suggested applications

Unmerged revisions

1493. By Rico Tzschichholz on 2016-01-16

WIP Add zeitgeist support for adding suggested applications

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'configure.ac'
2--- configure.ac 2015-11-03 12:01:37 +0000
3+++ configure.ac 2016-01-16 12:14:42 +0000
4@@ -265,6 +265,34 @@
5 fi
6 AM_CONDITIONAL([HAVE_DBUSMENU], [test "x$enable_dbusmenu" = "xyes"])
7
8+# Support suggested applications provided with zeitgeist
9+ZEITGEIST_MIN_VERSION=0.3
10+ZEITGEIST_PKGS="zeitgeist-1.0 >= $ZEITGEIST_MIN_VERSION"
11+ZEITGEIST2_PKGS="zeitgeist-2.0 >= $ZEITGEIST_MIN_VERSION"
12+AC_ARG_ENABLE([zeitgeist],
13+ AS_HELP_STRING([--enable-zeitgeist],
14+ [Enable suggested applications provided with zeitgeist-1.0]),
15+ [enable_zeitgeist=$enableval], [enable_zeitgeist=no])
16+AC_ARG_ENABLE([zeitgeist2],
17+ AS_HELP_STRING([--enable-zeitgeist2],
18+ [Enable suggested applications provided with zeitgeist-2.0]),
19+ [enable_zeitgeist2=$enableval],
20+ [PKG_CHECK_MODULES(ZEITGEIST, $ZEITGEIST2_PKGS, [enable_zeitgeist2=yes], [enable_zeitgeist2=no])])
21+if test "x$enable_zeitgeist" = "xyes" -a "x$enable_zeitgeist2" = "xyes" ; then
22+ AC_MSG_ERROR([Not possible to build against both, zeitgeist-1.0 and zeitgeist-2.0.])
23+fi
24+if test "x$enable_zeitgeist" = "xyes" -a "x$enable_zeitgeist2" = "xno" ; then
25+ PLANK_CORE_OPTIONAL_PKGS="$PLANK_CORE_OPTIONAL_PKGS $ZEITGEIST_PKGS"
26+ PLANK_CORE_VALA_PKGS="$PLANK_CORE_VALA_PKGS --pkg zeitgeist-1.0"
27+ VALAFLAGS="$VALAFLAGS --define HAVE_ZEITGEIST"
28+fi
29+if test "x$enable_zeitgeist" = "xno" -a "x$enable_zeitgeist2" = "xyes" ; then
30+ PLANK_CORE_OPTIONAL_PKGS="$PLANK_CORE_OPTIONAL_PKGS $ZEITGEIST2_PKGS"
31+ PLANK_CORE_VALA_PKGS="$PLANK_CORE_VALA_PKGS --pkg zeitgeist-2.0"
32+ VALAFLAGS="$VALAFLAGS --define HAVE_ZEITGEIST2"
33+ enable_zeitgeist=yes
34+fi
35+AM_CONDITIONAL([HAVE_ZEITGEIST], [test "x$enable_zeitgeist" = "xyes" -o "x$enable_zeitgeist2" = "xyes"])
36
37
38 AC_SUBST(PLANK_CORE_OPTIONAL_PKGS)
39@@ -426,6 +454,7 @@
40 Use gee-0.8.................: ${enable_gee_0_8}
41 Dbusmenu support............: ${enable_dbusmenu}
42 HiDPI support...............: ${enable_hidpi}
43+ Zeitgeist support...........: ${enable_zeitgeist}
44 XInput Barriers support.....: ${enable_barriers}
45
46 Apport support..............: ${enable_apport}
47
48=== modified file 'lib/Items/ApplicationDockItemProvider.vala'
49--- lib/Items/ApplicationDockItemProvider.vala 2016-01-14 11:12:59 +0000
50+++ lib/Items/ApplicationDockItemProvider.vala 2016-01-16 12:14:42 +0000
51@@ -52,6 +52,11 @@
52 Gee.HashMap<string, LauncherEntry> launcher_entries;
53 uint launcher_entries_timer_id = 0U;
54
55+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
56+ Zeitgeist.Log zglog = Zeitgeist.Log.get_default();
57+ Gee.ArrayList<TransientDockItem> suggested_app_items = new Gee.ArrayList<TransientDockItem> ();
58+#endif
59+
60 /**
61 * Creates a new container for dock items.
62 *
63@@ -91,6 +96,22 @@
64 dbus_name_owner_changed_signal_id = connection.signal_subscribe ("org.freedesktop.DBus", "org.freedesktop.DBus",
65 "NameOwnerChanged", "/org/freedesktop/DBus", null, DBusSignalFlags.NONE, (DBusSignalCallback) handle_name_owner_changed);
66 }
67+
68+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
69+ // FIXME Workaround to have an initialized PositionManager
70+ Idle.add (() => {
71+ // FIXME
72+ //controller.position_manager.notify["MaxItemCount"].connect (update_suggested_apps);
73+ update_suggested_apps ();
74+ return false;
75+ });
76+
77+ // FIXME Update suggested apps in a "proper" interval
78+ Timeout.add_seconds (3600, () => {
79+ update_suggested_apps ();
80+ return true;
81+ });
82+#endif
83 }
84
85 ~ApplicationDockItemProvider ()
86@@ -101,6 +122,10 @@
87 queued_files = null;
88 launcher_entries = null;
89
90+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
91+ // FIXME
92+ //controller.position_manager.notify["MaxItemCount"].disconnect (update_suggested_apps);
93+#endif
94 Matcher.get_default ().application_opened.disconnect (app_opened);
95
96 if (items_monitor != null) {
97@@ -309,6 +334,84 @@
98 return item_list.to_array ();
99 }
100
101+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
102+ public void update_suggested_apps ()
103+ {
104+ Logger.verbose ("ApplicationDockItemProvider.update_suggested_apps ()");
105+
106+ // FIXME
107+ //var max_item_count = controller.position_manager.MaxItemCount;
108+ var max_item_count = 15;
109+ //var max_item_count = controller.position_manager.MaxItemCount;
110+ var num_events = 3;
111+ if (get_n_items (true, suggested_app_items) >= max_item_count - num_events)
112+ return;
113+
114+ Logger.verbose ("ApplicationDockItemProvider.update_suggested_apps ().run (%i)", num_events);
115+
116+#if HAVE_ZEITGEIST
117+ var templates = new PtrArray ();
118+#else
119+ var templates = new GenericArray<Zeitgeist.Event> ();
120+#endif
121+ // Consider used applications within the last 2 months
122+ var now = new DateTime.now_local ().to_unix () * 1000;
123+ var start = now - 60 * 86400000;
124+ var time_range = new Zeitgeist.TimeRange (start, now);
125+
126+ var event = new Zeitgeist.Event ();
127+#if HAVE_ZEITGEIST
128+ var subject = new Zeitgeist.Subject ();
129+ subject.set_uri ("application://*");
130+#else
131+ var subject = new Zeitgeist.Subject.full ("application://*");
132+#endif
133+ event.add_subject (subject);
134+ templates.add (event);
135+
136+ zglog.find_events.begin (time_range, templates, Zeitgeist.StorageState.ANY, num_events,
137+ Zeitgeist.ResultType.MOST_POPULAR_SUBJECTS, null, (obj, res) => {
138+ Zeitgeist.ResultSet events = zglog.find_events.end (res);
139+ var new_suggested_app_items = new Gee.ArrayList<TransientDockItem> ();
140+ foreach (var e in events) {
141+#if HAVE_ZEITGEIST
142+ var app_uri = e.get_subject (0).get_uri ();
143+#else
144+ var app_uri = e.subjects[0].uri;
145+#endif
146+
147+ // Find a matching desktop-file and create new TransientDockItem
148+ var desktop_file = desktop_file_for_application_uri (app_uri);
149+ if (desktop_file == null)
150+ continue;
151+
152+ var launcher_uri = desktop_file.get_uri ();
153+ DockItem? current_item = item_for_uri (launcher_uri);
154+ if (current_item == null) {
155+ current_item = new TransientDockItem.with_launcher (launcher_uri);
156+ add (current_item);
157+ Logger.verbose ("SuggestedApp added: %s[%s, %i]", current_item.Text, current_item.Launcher, (int)current_item);
158+ new_suggested_app_items.add (current_item as TransientDockItem);
159+ } else if (current_item is TransientDockItem) {
160+ Logger.verbose ("SuggestedApp confirmed: %s[%s, %i]", current_item.Text, current_item.Launcher, (int)current_item);
161+ new_suggested_app_items.add (current_item as TransientDockItem);
162+ }
163+ }
164+
165+ suggested_app_items.remove_all (new_suggested_app_items);
166+ foreach (var item in suggested_app_items) {
167+ if (!can_remove_transient_item (item))
168+ return;
169+
170+ Logger.verbose ("SuggestedApp removed: %s[%s, %i]", item.Text, item.Launcher, (int)item);
171+ remove (item);
172+ }
173+
174+ suggested_app_items = new_suggested_app_items;
175+ });
176+ }
177+#endif
178+
179 protected virtual void app_opened (Bamf.Application app)
180 {
181 // Make sure internal window-list of Wnck is most up to date
182@@ -371,6 +474,12 @@
183 }
184
185 queued_files.clear ();
186+
187+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
188+ // Update suggested applications while it is possible the
189+ // added application(s) were
190+ update_suggested_apps ();
191+#endif
192 }
193
194 [CCode (instance_pos = -1)]
195@@ -402,6 +511,37 @@
196 process_queued_files ();
197 }
198
199+ public bool can_remove_transient_item (TransientDockItem item)
200+ {
201+ return (item != null
202+ && item.App == null
203+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
204+ && !suggested_app_items.contains (item)
205+#endif
206+ && !item.has_unity_info ());
207+ }
208+
209+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
210+ int get_n_items (bool visible_only, Gee.List<DockElement>? ignore = null)
211+ {
212+ unowned Gee.List<DockElement> elements = (visible_only ? visible_elements : internal_elements);
213+ var elements_count = elements.size;
214+
215+ //foreach (var item in items)
216+ // if (item.is_virtual ());
217+ // items_count--;
218+
219+ if (ignore == null)
220+ return elements_count;
221+
222+ foreach (var element in ignore)
223+ if (elements.contains (element))
224+ elements_count--;
225+
226+ return elements_count;
227+ }
228+#endif
229+
230 protected override void connect_element (DockElement element)
231 {
232 base.connect_element (element);
233@@ -462,7 +602,7 @@
234 // Remove item which only exists because of the presence of
235 // this removed LauncherEntry interface
236 unowned TransientDockItem? transient_item = item as TransientDockItem;
237- if (transient_item != null && transient_item.App == null)
238+ if (can_remove_transient_item (transient_item))
239 remove (transient_item);
240
241 break;
242
243=== modified file 'lib/Items/DefaultApplicationDockItemProvider.vala'
244--- lib/Items/DefaultApplicationDockItemProvider.vala 2015-11-03 10:37:19 +0000
245+++ lib/Items/DefaultApplicationDockItemProvider.vala 2016-01-16 12:14:42 +0000
246@@ -1,5 +1,6 @@
247 //
248 // Copyright (C) 2013 Rico Tzschichholz
249+// Copyright (C) 2013 Seif Lotfy
250 //
251 // This file is part of Plank.
252 //
253@@ -124,8 +125,9 @@
254
255 void app_closed (DockItem item)
256 {
257- if (item is TransientDockItem
258- && !(((TransientDockItem) item).has_unity_info ()))
259+ unowned TransientDockItem transient_item = (item as TransientDockItem);
260+ transient_item.App = null;
261+ if (can_remove_transient_item (transient_item))
262 remove (item);
263 }
264
265@@ -222,7 +224,14 @@
266 app = ((ApplicationDockItem) item).App;
267
268 if (app == null || !app.is_running ()) {
269+ // TODO Replace the item if it is a suggested appliction
270 remove (item);
271+
272+#if HAVE_ZEITGEIST || HAVE_ZEITGEIST2
273+ // Update suggested applications while it is possible the
274+ // removed application is one
275+ update_suggested_apps ();
276+#endif
277 return;
278 }
279
280
281=== modified file 'lib/Items/TransientDockItem.vala'
282--- lib/Items/TransientDockItem.vala 2015-11-03 10:37:19 +0000
283+++ lib/Items/TransientDockItem.vala 2016-01-16 12:14:42 +0000
284@@ -95,6 +95,11 @@
285 return false;
286 }
287
288+ public bool is_virtual ()
289+ {
290+ return (App == null);
291+ }
292+
293 /**
294 * {@inheritDoc}
295 */
296
297=== modified file 'lib/libplank.symbols'
298--- lib/libplank.symbols 2016-01-14 13:33:33 +0000
299+++ lib/libplank.symbols 2016-01-16 12:14:42 +0000
300@@ -50,6 +50,7 @@
301 plank_application_dock_item_parse_launcher
302 plank_application_dock_item_provider_acquire_unity_dbus
303 plank_application_dock_item_provider_app_opened
304+plank_application_dock_item_provider_can_remove_transient_item
305 plank_application_dock_item_provider_construct
306 plank_application_dock_item_provider_delay_items_monitor
307 plank_application_dock_item_provider_get_item_list_string
308@@ -679,6 +680,7 @@
309 plank_transient_dock_item_construct
310 plank_transient_dock_item_construct_with_launcher
311 plank_transient_dock_item_get_type
312+plank_transient_dock_item_is_virtual
313 plank_transient_dock_item_new
314 plank_transient_dock_item_new_with_launcher
315 plank_worker_add_task

Subscribers

People subscribed via source and target branches

to status/vote changes: