Ticket #8881: 0001-Fix-8881-Add-color-drops-to-Backgrounds.patch

File 0001-Fix-8881-Add-color-drops-to-Backgrounds.patch, 3.3 KB (added by TwoFx, 9 years ago)
  • src/kits/tracker/DeskWindow.cpp

    From f2a95c67298238dc0a739a9758462ece03147954 Mon Sep 17 00:00:00 2001
    From: Markus Himmel <markus@himmel-villmar.de>
    Date: Tue, 30 Dec 2014 18:14:49 +0000
    Subject: [PATCH] Fix #8881: Add color drops to Backgrounds
    
    - The Backgrounds preferences app will now accept color drops.
    - The Backgrounds app will update if a color drop to the desktop has changed its color due to a direct color drop
    ---
     src/kits/tracker/DeskWindow.cpp                 | 10 ++++++++++
     src/preferences/backgrounds/Backgrounds.cpp     | 12 ++++++++++++
     src/preferences/backgrounds/BackgroundsView.cpp | 13 +++++++++++++
     3 files changed, 35 insertions(+)
    
    diff --git a/src/kits/tracker/DeskWindow.cpp b/src/kits/tracker/DeskWindow.cpp
    index 94cb0b7..b101324 100644
    a b All rights reserved.  
    3939#include <Debug.h>
    4040#include <FindDirectory.h>
    4141#include <Locale.h>
     42#include <Messenger.h>
    4243#include <NodeMonitor.h>
    4344#include <Path.h>
    4445#include <PathFinder.h>
    BDeskWindow::MessageReceived(BMessage* message)  
    641642            BScreen(this).SetDesktopColor(*color);
    642643            fPoseView->SetViewColor(*color);
    643644            fPoseView->SetLowColor(*color);
     645
     646            // Notify the backgrounds app that the background changed
     647            status_t initStatus;
     648            BMessenger messenger = BMessenger(
     649                "application/x-vnd.Haiku-Backgrounds", -1, &initStatus);
     650            if (initStatus == B_OK) {
     651                messenger.SendMessage(message);
     652            }
     653
    644654            return;
    645655        }
    646656    }
  • src/preferences/backgrounds/Backgrounds.cpp

    diff --git a/src/preferences/backgrounds/Backgrounds.cpp b/src/preferences/backgrounds/Backgrounds.cpp
    index 4907bd1..20206a7 100644
    a b public:  
    3030                            BackgroundsWindow();
    3131
    3232            void            RefsReceived(BMessage* message);
     33            void            MessageReceived(BMessage* message);
    3334
    3435protected:
    3536    virtual bool            QuitRequested();
    BackgroundsApplication::BackgroundsApplication()  
    6768void
    6869BackgroundsApplication::MessageReceived(BMessage* message)
    6970{
     71    if (message->WasDropped()) {
     72        // This is the desktop telling us that it was changed by a color drop
     73        BMessenger(fWindow).SendMessage(message);
     74        return;
     75    }
    7076    switch (message->what) {
    7177        case B_SILENT_RELAUNCH:
    7278            fWindow->Activate();
    BackgroundsWindow::RefsReceived(BMessage* message)  
    115121    Activate();
    116122}
    117123
     124void
     125BackgroundsWindow::MessageReceived(BMessage* message)
     126{
     127    BMessenger(fBackgroundsView).SendMessage(message);
     128}
     129
    118130
    119131bool
    120132BackgroundsWindow::QuitRequested()
  • src/preferences/backgrounds/BackgroundsView.cpp

    diff --git a/src/preferences/backgrounds/BackgroundsView.cpp b/src/preferences/backgrounds/BackgroundsView.cpp
    index 3c1c1f2..f7d8827 100644
    a b BackgroundsView::AllAttached()  
    293293void
    294294BackgroundsView::MessageReceived(BMessage* message)
    295295{
     296    // Color drop
     297    if (message->WasDropped()) {
     298        rgb_color *clr;
     299        ssize_t out_size;
     300        if (message->FindData("RGBColor", B_RGB_COLOR_TYPE,
     301            (const void **)&clr, &out_size) == B_OK) {
     302            fPicker->SetValue(*clr);
     303            _UpdatePreview();
     304            _UpdateButtons();
     305            return;
     306        }
     307    }
     308
    296309    switch (message->what) {
    297310        case B_SIMPLE_DATA:
    298311        case B_REFS_RECEIVED: