summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2020-05-24 00:00:17 +0200
committerCarl Hetherington <cth@carlh.net>2020-05-24 00:00:35 +0200
commit2a228231e9cbce6639f410cb679f86ec69952658 (patch)
treeb0fde6722f517749a4ee6f8e55799d7405fde609
parent87933c7b40c6035ca2aecd2bbc96428813ac9b38 (diff)
Fix audio mapping view on GTK3, with some cleanups that hopefully don't break things elsewhere.
-rw-r--r--src/wx/audio_mapping_view.cc48
1 files changed, 35 insertions, 13 deletions
diff --git a/src/wx/audio_mapping_view.cc b/src/wx/audio_mapping_view.cc
index 1d9c08535..900299298 100644
--- a/src/wx/audio_mapping_view.cc
+++ b/src/wx/audio_mapping_view.cc
@@ -253,20 +253,12 @@ AudioMappingView::paint_row_labels (wxDC& dc, wxGraphicsContext* gc)
yp += dc.GetLogicalOrigin().y;
}
- wxCoord old_x, old_y, old_width, old_height;
- dc.GetClippingBox (&old_x, &old_y, &old_width, &old_height);
- dc.DestroyClippingRegion ();
- dc.SetClippingRegion (GRID_SPACING, yp + 4, GRID_SPACING, height - 8);
-
dc.DrawRotatedText (
std_to_wx(i.name),
GRID_SPACING + (GRID_SPACING - label_height) / 2,
y + (height + label_width) / 2,
90
);
-
- dc.DestroyClippingRegion ();
- dc.SetClippingRegion (old_x, old_y, old_width, old_height);
}
lines.MoveToPoint (GRID_SPACING, y);
@@ -370,27 +362,57 @@ AudioMappingView::paint ()
paint_static (dc, gc);
- clip (dc, gc, LEFT_WIDTH, 0, GRID_SPACING * _output_channels.size(), GRID_SPACING * (2 + _input_channels.size()));
+ clip (
+ dc, gc,
+ LEFT_WIDTH,
+ 0,
+ GRID_SPACING * _output_channels.size(),
+ GRID_SPACING * (2 + _input_channels.size())
+ );
translate (dc, gc, hs, 0);
paint_column_labels (dc, gc);
restore (dc, gc);
- clip (dc, gc, 0, TOP_HEIGHT, GRID_SPACING * (3 + _output_channels.size()), GRID_SPACING * _input_channels.size() + 1);
+ clip (
+ dc, gc,
+ 0,
+ TOP_HEIGHT,
+ GRID_SPACING * 3,
+ min(int(GRID_SPACING * _input_channels.size()), GetSize().GetHeight() - TOP_HEIGHT)
+ );
translate (dc, gc, 0, vs);
paint_row_labels (dc, gc);
restore (dc, gc);
- clip (dc, gc, GRID_SPACING * 2, TOP_HEIGHT, GRID_SPACING * (1 + _output_channels.size()), GRID_SPACING * _input_channels.size() + 1);
+ clip (
+ dc, gc,
+ GRID_SPACING * 2,
+ TOP_HEIGHT,
+ GRID_SPACING * (1 + _output_channels.size()),
+ min(int(GRID_SPACING * (2 + _input_channels.size())), GetSize().GetHeight() - TOP_HEIGHT)
+ );
translate (dc, gc, hs, vs);
paint_row_lines (gc);
restore (dc, gc);
- clip (dc, gc, LEFT_WIDTH, GRID_SPACING, GRID_SPACING * (1 + _output_channels.size()), GRID_SPACING * (1 + _input_channels.size()));
+ clip (
+ dc, gc,
+ LEFT_WIDTH,
+ GRID_SPACING,
+ GRID_SPACING * (1 + _output_channels.size()),
+ min(int(GRID_SPACING * (1 + _input_channels.size())), GetSize().GetHeight() - GRID_SPACING)
+ );
translate (dc, gc, hs, vs);
paint_column_lines (gc);
restore (dc, gc);
- clip (dc, gc, LEFT_WIDTH, TOP_HEIGHT, GRID_SPACING * _output_channels.size(), GRID_SPACING * _input_channels.size());
+ clip (
+ dc, gc,
+ LEFT_WIDTH,
+ TOP_HEIGHT,
+ GRID_SPACING * _output_channels.size(),
+ min(int(GRID_SPACING * _input_channels.size()), GetSize().GetHeight() - TOP_HEIGHT)
+ );
translate (dc, gc, hs, vs);
paint_indicators (dc);
restore (dc, gc);