Bladeren bron

PixelPaint: Keep a RefPtr to layer in LayerPropertiesWidget

Using a WeakPtr to keep a reference to the active layer caused it to
be destroyed when the last tab was closed, which made the
m_layer == layer check in set_layer() return early since it was
already null. Because of this the LayerPropertiesWidget was never
disabled.
Marcus Nilsson 3 jaren geleden
bovenliggende
commit
18e6da6d4d

+ 1 - 1
Userland/Applications/PixelPaint/LayerPropertiesWidget.cpp

@@ -75,7 +75,7 @@ void LayerPropertiesWidget::set_layer(Layer* layer)
         return;
         return;
 
 
     if (layer) {
     if (layer) {
-        m_layer = layer->make_weak_ptr();
+        m_layer = layer;
         m_name_textbox->set_text(layer->name());
         m_name_textbox->set_text(layer->name());
         m_opacity_slider->set_value(layer->opacity_percent());
         m_opacity_slider->set_value(layer->opacity_percent());
         m_visibility_checkbox->set_checked(layer->is_visible());
         m_visibility_checkbox->set_checked(layer->is_visible());

+ 1 - 1
Userland/Applications/PixelPaint/LayerPropertiesWidget.h

@@ -27,7 +27,7 @@ private:
     RefPtr<GUI::OpacitySlider> m_opacity_slider;
     RefPtr<GUI::OpacitySlider> m_opacity_slider;
     RefPtr<GUI::TextBox> m_name_textbox;
     RefPtr<GUI::TextBox> m_name_textbox;
 
 
-    WeakPtr<Layer> m_layer;
+    RefPtr<Layer> m_layer;
 };
 };
 
 
 }
 }