diff --git a/aegisub/src/dialog_colorpicker.cpp b/aegisub/src/dialog_colorpicker.cpp
index dc30685f4762a02f24a32e3f16851400b0e04949..7b8986df01f1d8ab935463e8820c3ac02cbb0add 100644
--- a/aegisub/src/dialog_colorpicker.cpp
+++ b/aegisub/src/dialog_colorpicker.cpp
@@ -1190,21 +1190,36 @@ void DialogColorPicker::OnSliderChange(wxCommandEvent &evt)
 	slider->GetXY(x, y);
 	switch (i) {
 		// setting the value of a component input automatically invalidates the spectrum
-		// and calls the according UpdateFromXXX() function
+		// and calls the according UpdateFromXXX() function in wxMSW and wxMac, wxGTK must be manually updated 
 		case 0:
 			rgb_input[0]->SetValue(y);
+#ifdef __WXGTK__
+			UpdateFromRGB();
+#endif
 			break;
 		case 1:
 			rgb_input[1]->SetValue(y);
+#ifdef __WXGTK__
+			UpdateFromRGB();
+#endif
 			break;
 		case 2:
 			rgb_input[2]->SetValue(y);
+#ifdef __WXGTK__
+			UpdateFromRGB();
+#endif
 			break;
 		case 3:
 			hsl_input[2]->SetValue(y);
+#ifdef __WXGTK__
+			UpdateFromHSL();
+#endif
 			break;
 		case 4:
 			hsv_input[0]->SetValue(y);
+#ifdef __WXGTK__
+			UpdateFromHSV();
+#endif
 			break;
 	}
 }